1
2

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.

【初心者】マイグレーションファイルを修正したい -ロールバックの使い方-

Last updated at Posted at 2020-07-19

私は勉強し始めた最初の頃、自分で何かを作ろうとして間違えたらすぐに消していました。
特にやらかしてしまうのは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

###まとめ
初めは、間違えたら消した方が早いと思うのですが、これを覚えるだけでかなり気持ちが楽になります。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?