7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ロールバックせずにマイグレーションファイルを削除してしまった。。。 ❏Rails❏

Last updated at Posted at 2019-11-30

マイグレーションファイルをいじる時はあれだけ気をつけろと言ったのに、、、

なぜロールバックする前にマイグレーションファイルを削除したんや俺ぇぇぇぇ!!!

ということで解決方法

#【現状】
rails db:migrate:statusを叩くとNO FILEと出ます。

ターミナル
 Status   Migration ID    Migration Name
--------------------------------------------------
   up     20191123230155  Create tweets
   up     20191124013808  Devise create users
   up     20191127115414  ********** NO FILE **********
  down    20191124030050  Create comments

upがmigrate実行後
downがmigrate実行前

upなのにNO FILEはよろしくない

#【その1】
Migration IDをコピーし新たにマイグレーションファイルを作成。

ターミナル
$ touch db/migrate/20191127115414_manbow.rb

どうせ削除するから名前は適当

20191127115414_manbow.rb
class Manbow < ActiveRecord::Migration[5.2]
  def change
  end
end

もう一度 `$ rails db:migrate:status`を叩くと名前が付与されている。
ターミナル
 Status   Migration ID    Migration Name
--------------------------------------------------
   up     20191123230155  Create tweets
   up     20191124013808  Devise create users
   up     20191127115414  Manbow
  down    20191124030050  Create comments

#【その2】
VERSIONMigration IDを代入し、upをdownに変える

ターミナル
$ rails db:migrate:down VERSION=20191127115414

`$ rails db:migrate:status`でdownに変わっていることを確認。
ターミナル
 Status   Migration ID    Migration Name
--------------------------------------------------
   up     20191123230155  Create tweets
   up     20191124013808  Devise create users
  down    20191127115414  Manbow
  down    20191124030050  Create comments

あとはマイグレーションファイルを削除するだけ。

マイグレーションファイルを削除する際は十分に注意しましょう。

参考

https://qiita.com/sakatan_1/items/9bf321f81d3b84042694


ではまた!
7
5
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
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?