2
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?

【Rails】マイグレーションファイルをupのまま削除した場合の対応方法

Posted at

記事概要

Railsのマイグレーションファイルをupのまま削除した場合の対応方法について、記述する。

事象

マイグレーションファイルのステータスが”up”の状態で、マイグレーションファイルを削除した

  • テーブルを作り直したかったので、手作業でマイグレーションファイルを消してしまった
  • テーブルを作り直すために、モデルを削除しようとrails d model モデル名のコマンドを実行したが、それと同時にupの状態のマイグレーションファイルが消えてしまった

対応方法

  1. ターミナルで下記を実行し、Migration IDを確認する
    # アプリのディレクトリに移動
    % cd ~/[アプリのディレクトリ]
    
    # マイグレーションファイルのステータスを確認
    % rails db:migrate:status
    
  2. ファイル名が「NO FILE」になっていることを確認する
     Status   Migration ID    Migration Name
    --------------------------------------------------
       up     20250715145133  ********** NO FILE **********
    
  3. db/migraete配下に、手動で仮のマイグレーションファイルを作成する
    db/migraete/[Migration ID]_sample.rb
  4. 3.で作成したファイルに下記を記述
    db/migraete/[Migration ID]_sample.rb
    class Sample < ActiveRecord::Migration[7.0]
      def change
      end
    end
    
  5. ターミナルで下記を実行する
    # マイグレーションファイルのステータスを確認
    % rails db:migrate:status
    
  6. 2.で「NO FILE」と記載されていたIDに、ファイル名[Sample]が記載されていることを確認する
  7. ターミナルで下記を実行し、ロールバックする
    # ロールバックを実行
    % rails db:rollback
    
  8. ターミナルで下記を実行し、ステータスが”down”になっていることを確認する
    # マイグレーションファイルのステータスを確認
    % rails db:migrate:status
    
  9. マイグレーションファイルを削除する
2
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
2
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?