1. ホーム
  2. ruby-on-rails

[解決済み] Ruby on Railsです。rake db:migrate でマイグレーションを元に戻すには?

2022-12-24 06:36:45

質問

devise MODEL Userをインストールしたところ、このようになりました。

class DeviseCreateUsers < ActiveRecord::Migration
  def self.up
    create_table(:users) do |t|
      t.database_authenticatable :null => false
      t.recoverable
      t.rememberable
      t.trackable

      # t.encryptable
      # t.confirmable
      # t.lockable :lock_strategy => :failed_attempts, :unlock_strategy => :both
      # t.token_authenticatable


      t.timestamps
    end

    add_index :users, :email,                :unique => true
    add_index :users, :reset_password_token, :unique => true
    # add_index :users, :confirmation_token,   :unique => true
    # add_index :users, :unlock_token,         :unique => true
    # add_index :users, :authentication_token, :unique => true
  end

  def self.down
    drop_table :users
  end
end

ここで、rake db:migrateを実行すると、usersテーブルが作成されます。

このマイグレーションを元に戻すには、つまり、もう一度rakeを使ってusersテーブルを削除するにはどうすればよいでしょうか?

どのように解決するのですか?

次のコマンドを実行します。

rake db:migrate:down VERSION=<version>

ここで <version> は、元に戻したいマイグレーションファイルのバージョン番号です。

例:ファイル名3846656238_create_users.rbのマイグレーションを戻したい場合

rake db:migrate:down VERSION=3846656238