まずはどこまでmigrateが実行されているかを確認しましょう。
bin/rake db:version
こんな感じで出てきます。
20171112122350まで実行されていますね。
bin/rake db:version
Current version: 20171112122350
次に戻したいところまでロールバックします。
一つ前まで戻す
bin/rake db:rollback
任意のファイルまで戻す
bin/rake db:rollback STEP=○
現在地を含めた○個前までなかったことにしてくれます。
(つまり○+1個前のファイルまで実行された状態)
念のためどのファイルが実行されていないか確認します。
bin/rake db:abort_if_pending_migrations
You have 1 pending migrations:
20171112131249 CreateUsers
20171112131249のUserテーブルが作られていないようです。
class CreateUsers < ActiveRecord::Migration[5.1]
def change
create_table :users do |t|
t.references :comment, index: true, foreign_key: true # null: falseを削除
t.string :name
t.string :email
t.timestamps
end
end
end
今回はCommentテーブルにレコードが何も入っていない状態で
NOT NULLにしてしまったため失敗したので、
null: false
を削除します。
修正が完了したらマイグレートを実行します。
bin/rake db:migrate
== 20171112131249 CreateUsers: migrating ===============================
-- create_table(:users)
-> 0.0026s
== 20171112131249 CreateUsers: migrated (0.0027s) ========================
これで無事修正完了です。