記事の内容
マイグレーションファイルがUPの状態で誤って消してしまい、migrateするとerrorが出てしまう。そんな時の対処法をお伝えします。
前提
Ruby:2.6.5
####Rails 6.0.0
MySql
流れ
1.rails db:migrate:statusで消してしまったファイルの確認、コピーする。
2.dbに手動でファイルを作成する。
3.rails db:rollbackでdownにし、手動でファイルを消す。
1.rails db:migrate:statusで消してしまったファイルの確認
####ターミナルでrails db:migrate:statusとコマンド、消してしまったファイル名を確認
ターミナル.
Status Migration ID Migration Name
--------------------------------------------------
up 20210416062030 Devise create users
up 20210421093836 Create photos
up 20210421095230 Create active storage tablesactive storage
up 20210422031359 Create areas
up 20210427013219 Nofile
↑こちらの数字をコピーする
2.dbに手動でファイルを作成する。
####db内に手動でファイルを作成します。
db/20210427013219_sample.rb←sampleの部分は任意のファイル名で大丈夫です。
class Sample < ActiveRecord::Migration[6.0]
def change
end
end
3.rails db:rollbackでdownにし、消す。
ターミナルでrails db:rollbackをコマンドし、後はファイルをゴミ箱に入れれば完了。
ターミナル.
Status Migration ID Migration Name
--------------------------------------------------
up 20210416062030 Devise create users
up 20210421093836 Create photos
up 20210421095230 Create active storage tablesactive storage
up 20210422031359 Create areas
down 20210427013219 Sample
↑downしていることを確認し、手動で削除すれば完了です。