記事概要
Railsのマイグレーションファイルをupのまま削除した場合の対応方法について、記述する。
事象
マイグレーションファイルのステータスが”up”の状態で、マイグレーションファイルを削除した
- テーブルを作り直したかったので、手作業でマイグレーションファイルを消してしまった
- テーブルを作り直すために、モデルを削除しようと
rails d model モデル名
のコマンドを実行したが、それと同時にupの状態のマイグレーションファイルが消えてしまった
対応方法
- ターミナルで下記を実行し、Migration IDを確認する
# アプリのディレクトリに移動 % cd ~/[アプリのディレクトリ] # マイグレーションファイルのステータスを確認 % rails db:migrate:status
- ファイル名が「NO FILE」になっていることを確認する
Status Migration ID Migration Name -------------------------------------------------- up 20250715145133 ********** NO FILE **********
- db/migraete配下に、手動で仮のマイグレーションファイルを作成する
db/migraete/[Migration ID]_sample.rb
- 3.で作成したファイルに下記を記述
db/migraete/[Migration ID]_sample.rb
class Sample < ActiveRecord::Migration[7.0] def change end end
- ターミナルで下記を実行する
# マイグレーションファイルのステータスを確認 % rails db:migrate:status
- 2.で「NO FILE」と記載されていたIDに、ファイル名[Sample]が記載されていることを確認する
- ターミナルで下記を実行し、ロールバックする
# ロールバックを実行 % rails db:rollback
- ターミナルで下記を実行し、ステータスが”down”になっていることを確認する
# マイグレーションファイルのステータスを確認 % rails db:migrate:status
- マイグレーションファイルを削除する