LoginSignup
18
16

More than 3 years have passed since last update.

railsで特定のマイグレーションファイルをロールバックする

Last updated at Posted at 2020-12-02

migrationファイルをロールバックしたいが、ただロールバックするだけでは一つ前の物しか適用されないため、IDを指定して任意のファイルをロールバックする方法。あくまで備忘録です。ご指摘などあればご鞭撻のほどよろしくお願いします。

まずは、マイグレーションファイルの状態を確認する。

% bundle exec rake db:migrate:status

db:migration:statusで状態を確認できる。

Status   Migration ID    Migration Name
--------------------------------------------------
   up     20201120034343  Devise create users
   up     20201343220111  Create snscredentials
   up     20201699490534  Create houses
   up     20201202100051  Create addresses

upはファイルがマイグレーションされている状態。
これをdownにすることで再編集ができる。

bundle exec rake db:migrate:down VERSION='マイグレーショID'

上記のaddressesファイルでやってみる。

bundle exec rake db:migrate:down VERSION=20201202100051

再度bundle exec rake db:migration:statusで確認

Status   Migration ID    Migration Name
--------------------------------------------------
   up     20201120034232  Devise create users
   up     20201120070111  Create sns credentials
   up     20201201090534  Create houses
  down    20201202100051  Create addresses

downになったので編集して

bundle exec rake db:migrate:up VERSION=20201202100051

再度migrateして完了。

18
16
1

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
18
16