LoginSignup
0
0

More than 3 years have passed since last update.

[Rails] マイグレーションファイルをUPの状態で消した際の対処法

Posted at

記事の内容

マイグレーションファイルが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していることを確認し、手動で削除すれば完了です。

まとめ

githubで編集内容を削除し、誤ってマイグレーションも消してしまう場面が多々あります。この記事を参考にerrorを解決していただけたら幸いです。

0
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
0
0