IT技術にまつわる実験ノート

「長編を書くより、短編を数多く完成させてください。それが上達への近道です」 by 手塚治虫

Rails のマイグレーションファイルを修正する

エラー発見

マイグレーションファイルを以下のようにミスって記述してしまった。

f:id:matt-note:20181231105830p:plain

 

正しい記述方法

正しい記述方法は、change メソッドだけで記述したり、up/down メソッドのコンビだけで記述することになる。

ミスった例のように、change メソッド内に up/down メソッドを記述すると、うまくマイグレーションできない。

f:id:matt-note:20181231105938p:plain

 

ロールバックする

まずはマイグレーションを確認してみる。現在は、ミスったものが反映されてしまっている。

  • bin/rails db:migrate:status

f:id:matt-note:20181231110321p:plain

 

ロールバックを実行する。ここでは1つ前のマイグレーションを取り消す。

f:id:matt-note:20181231110526p:plain

 

ファイルを修正する

ファイルを修正して、マイグレーションを実行する。

f:id:matt-note:20181231110647p:plain

 

これでマイグレーションを修正することができた。

 

確認してみる

f:id:matt-note:20181231120913p:plain

 

マイグレーションを反映させて、Task モデルに user_id を追加することができた。

 

注意点

ロールバックする前に、マイグレーションファイルを修正すると、エラーになる(ロールバックできない)。

ロールバック -> マイグレーションファイルを修正 -> マイグレーションを実行」の順番で修正する必要がある。