3
1

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 1 year has passed since last update.

migrateのステータス確認

Last updated at Posted at 2022-04-03

rails g migration XXX
などをタイポして、実行してしまった時にどうすれば良いのか調べました。

今回は、

rails g migraiton add_name_to_user name:string

rails g migraiton add_name_to_users name:string

のように、userをusersとしてしまいました。

db:migrate実行前

今回は、db:migrate実行前だったので、以下のコードを実行しました。データベースへの反映段階によって対処法が異なっているようです。

rails db:migrate:status

すると、upとdownが出てきました。

 Status   Migration ID    Migration Name
--------------------------------------------------
   up     20220403064432  Devise create users
  down    20220403131323  Add name to users

down => db:migrate実行前
up => db:migrate実行後

db:migrate実行前だったので、単純にmigrationファイルをrmコマンドで削除すれば問題ありませんでした。

一方で、db:migrateを実行している場合は、

db:migrate実行直後

1つ前の状態に戻すコマンドである、

rails db:rollback 

を実行すれば、先ほど確認したStatusがdownになるので、そのファイルを削除すれば大丈夫です。

db:migrate実行直後ではない

この場合はdownにしたいIDを指定すればオッケーです。

rails db:migrate:down VERSION=Migration ID

Migration IDは先ほど以下のコードで確認したら分かりますね。

rails db:migrate:status

migrationファイルの扱いは気をつけなければエラーを起こしやすいので、慎重にしましょう。

3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?