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