0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Ruby on Rails] マイグレーションファイルをUpのまま消去してしまった時の対処法

Posted at

これはホントにあった怖い話です。
マイグレーションファイルを間違ってUpのまま削除した男がいました。
その男は怖くなってしまい、また新しくrails g modelコマンドで、
モデルとマイグレーションファイルを生成してしまいました。

そして男は無限にエラー地獄を彷徨うこととなったのでした。

 
そんな男(自身)の失敗から学んだ事を書いていきます。

結論から言うと、
マイグレーションファイルを修正したり、削除する際は、
必ず

rails db:rollback

で、downの状態でマイグレーションファイルを操作するようにしましょう。
まず、削除してしまったものはしょうがないです。

解決方法

rails db:migrate:statusでステータスの確認をします。

NO FILEとなっているマイグレーションIDの番号をコピペして
手動で仮のマイグレーションファイルを作成します。
  

(例)
2343687287282_sample と作成します。

作られたファイルは空っぽなので
こんな感じに記述をしてあげます。 

スクリーンショット 2021-02-10 0.09.38.png

*ここで大事なのはclass名を必ず Sample にする事です。

このファイルを作成後にrails db:migrate:statusをすると
先ほどまでNO FILEだった所にSampleができ上がっています。
  
 
最後にrollbackをしてあげましょう。

その後、削除してあげるとエラーなく無事解決です。
  
  

間違い等ございましたらご指摘、ご教示のほどよろしくお願い致します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?