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

マイグレーションファイルのrollback方法

Last updated at Posted at 2020-05-20

はじめに

某プログラミングスクールにてフリマアプリを作成する際にカラム名を変更したい時にマイグレーションファイルのrollbackが必要だった為その時に調べた事を書きます。

1.マイグレーションファイルを1つずつ差し戻す方法

まずターミナルで以下を実行

$ rails db:rollback

$ rails db:migrate:status

   ↓ターミナルにこの様に表示されると思います
 Status   Migration ID    Migration Name
--------------------------------------------------
   up     20200510074001  Create spending categories
   up     20200510074005  Create income categories
   up     20200510074056  Create incomes
  down    20200510074140  Create spendings

2.複数のファイルを差し戻す

下記のように末尾にSTEP=で数を指定してあげると複数のファイルを差し戻すことが可能です。
今回は4つまとめて差し戻します。

$ rails db:rollback STEP=4 
  
$ rails db:migrate:status

   ↓ターミナルにこの様に表示されると思います
 Status   Migration ID    Migration Name
--------------------------------------------------
  down    20200510074001  Create spending categories
  down    20200510074005  Create income categories
  down    20200510074056  Create incomes
  down    20200510074140  Create spendings

3.任意のマイグレーションファイルのみを差し戻す

下記のようにVERSIONで "Migration ID" を指定してあげると選択のマイグレーションファイルのみを差し戻すことが可能です。

$ rails db:migrate:down VERSION=20200510074001 

$ rails db:migrate:status

   ↓ターミナルにこの様に表示されると思います
 Status   Migration ID    Migration Name
--------------------------------------------------
  down    20200510074001  Create spending categories
   up     20200510074005  Create income categories
   up     20200510074056  Create incomes
   up     20200510074140  Create spendings

最後まで見て頂きありがとうございます!!

この記事が少しでも参考になれば嬉しいです:pray_tone2:

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