42
39

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.

間違えて行ったmigrateを取り消す方法

Last updated at Posted at 2018-05-01

Rails触っているときに間違えてmigrateをしてしまいました。
そんな時どうしたら良いか?
今回学んだことを記録しておきます。


  • 今回間違えてしてしまったこと

blogsテーブルにtitleカラムを追加したかったので、titleカラムを追加するmigrationファイルを作成したが、カラムを追加する記述を間違えてnameにしてしまった。

$ rails g migration add_title_to_blogs
$ rails db:migrate
migration_2
def change
  add_cloumn :blogs, :name, :string
end

  • どう改善したか?

migrateしてすぐ気がついたので、今回はこのようなコマンドで改善した。
まず現在のmigrationがどこまで行われているか以下のコマンドで、スキーマのバージョンを調べる。

$ rails db:version

そしたら現在の最新のmigrationファイルが表示されるはず。
こんな感じで↓

Current version: migration_2(migrationファイル名)

今回のmigrateをなかったことにしたいので、rollbackを使ってスキーマを一つ前の状態に戻す。

$ rails db:rollback

これでもう一度以下コマンドでスキーマのバージョンを調べる。

$ rails db:version

そうすると一つ前のmigrationファイル名が表示されるはず。そしたらrollback成功!

Current version: migration_1(migrationファイル名)

最後に、間違えてmigrateしてしまったmigrationファイル(migration_2)の記述を正しく書き換えて、もう一度migrateして終了。

$ rails db:migrate
42
39
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
42
39

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?