私は勉強し始めた最初の頃、自分で何かを作ろうとして間違えたらすぐに消していました。
特にやらかしてしまうのはmigration周り…
そんないつも消してしまっている方にぜひ使ってもらいたいのがrollbackです。
###rollback(ロールバック)とは
巻き戻し
コミットする前までの処理を1つづつ戻すことができること
使い方
あ、間違えてしまったと思った時は、
まずは現状を見ます。
$ rails db:migrate:status
Status Migration ID Migration Name
--------------------------------------------------
up 日付 Devise create users
up 日付 Add name to users
up 日付 Create posts
upの状態だとマイグレーションファイルを編集しても読み込めれません。
そこで、
$ rails db:rollback
$ rails db:migrate:status
Status Migration ID Migration Name
--------------------------------------------------
up 日付 Devise create users
up 日付 Add name to users
down 日付 Create posts
状態をdownにすることで編集することができます。
同時に複数のマイグレーションファイルをrollbackさせたい時は
$ rails db:rollback STEP=2
$ rails db:migrate:status
Status Migration ID Migration Name
--------------------------------------------------
down 日付 Devise create users
down 日付 Add name to users
down 日付 Create posts
このようになります。
downの状態にした後に修正をし、再度rails db:migrateコマンドを実行します。
ちなみに最初からやり直したい時は
$ rails db:rollback VERSION=0
###まとめ
初めは、間違えたら消した方が早いと思うのですが、これを覚えるだけでかなり気持ちが楽になります。