環境
Rails5.2
Ubuntu20.4
内容
不要になったため、マイグレーションファイルをrmで削除したのだが、不用意であったため、マイグレーションのステータスを表示すると、NO FILEで残ってしまうこととなった。
$ rails db:migration:status
up 20220819003642 ********** NO FILE **********
このNO FILEをステータスから削除することとする。まずは、20220819003642_test01.rbという空ファイルを作成してやる。test01の部分は、どのような名前でもOKです。すると、NO FILEから、マイグレーションの履歴が復活しました。
$ rails db:migration:status
up 20220819003642 Test01
20220819003642_test01.rbの状態はupになっています。削除するには、downにする必要があります。空ファイルに、空のchangeメソッドを記述します。
20220819003642_test01.rb
class Test01 < ActiveRecord::Migration[5.2]
def change
end
end
1つだけロールバックすると、コマンドは正常に流れます。
$ rails db:rollback STEP=1
== 20220819003642 Test01: reverting ===========================================
== 20220819003642 Test01: reverted (0.0024s) ==================================
ステータスを表示すると、状態がdownに変更されます。
$ rails db:migration:status
down 20220819003642 Test01
作成したマイグレーションファイルを削除します。
$rm 20220819003642_test01.rb
マイグレーションのステータスを表示すると、一時的に作成したTest01の履歴は消えています。
$ rails db:migration:status