Railsでnステップ分のロールバックを行う方法


ロールバックは、適用されたマイグレーションを取り消して以前の状態に戻すための操作です。nステップ分のロールバックを行うには、以下の方法があります。

  1. rails db:rollback STEP=n コマンドを使用する方法: Railsのコマンドラインインターフェースを使用して、db:rollback コマンドに STEP オプションを指定します。例えば、以下のコマンドを実行すると、直近のnステップ分のロールバックが行われます。

    rails db:rollback STEP=n

    この方法は、一度に指定したステップ数分のロールバックを行うことができます。

  2. マイグレーションファイルのバージョンを指定する方法: マイグレーションファイルは、db/migrate ディレクトリにあります。各マイグレーションファイルには、一意のタイムスタンプが含まれています。ロールバックしたいステップ数に応じて、該当するマイグレーションファイルのバージョンを特定し、それ以降のマイグレーションを取り消します。

    例えば、db/migrate ディレクトリに以下のマイグレーションファイルがあるとします。

    20220101000001_create_table_a.rb
    20220102000001_add_column_b_to_table_a.rb
    20220103000001_add_column_c_to_table_a.rb

    もし、直近の2つのマイグレーションをロールバックしたい場合、20220103000001_add_column_c_to_table_a.rb までのマイグレーションを取り消します。

    この方法は、特定のマイグレーションファイルまでのロールバックを行うことができます。

以上が、Railsでnステップ分のロールバックを行う方法です。適用したマイグレーションを取り消して以前の状態に戻す際に利用できます。