migrationファイル --NO FILE-- を解決する
RailsでDBに変更を加える際に、マイグレーションファイルを作ってカラムの追加なりをする。
しかし、マイグレーションファイルの作成とか編集に失敗したからと言って、手動でファイルを削除すればそれが反映されるわけではない。きちんとターミナルでコマンドによるRemoveを行わないと、あとから rake db:migrate するときにエラーが起きたり、本番環境へデプロイするときにエラーが起きたりする。
とはいえ人は過ちを犯すもの。なぜかあるべきマイグレーションファイルがない時もある。そういう時の対処法。
●方法
消失したマイグレーションファイルの代わりを作る
↓
そのファイルをROLLBACKでdownにして削除する
詳しくはこのサイトを見て手順通りに実行しました。
https://joppot.info/2014/10/16/2104
しかし一点だけハマりました。
代わりに作ったマイグレーションファイル内の記述を
class
Tmp < ActiveRecord::Migration
def
change
end
end
とするのですが、これだけだと rake db:rollback ができない。
解決方法は
class
Tmp < ActiveRecord::Migration(5.2)
def
change
end
end
上記のようにクラス名の後にRailsのバージョンを記載する。
これできちんとROLLBACKができて、削除もできるようになります。一件落着。