🔙

【Rails】マイグレーションを戻すコマンド色々

2023/09/08に公開

はじめに

Railsのマイグレーションは、データベースのスキーマ変更やデータの追加・更新などの操作を行う際に使用されます。ただ、時にはマイグレーションを戻したり、最初の状態に戻したりする必要が生じることもあります。
この記事では、Railsのマイグレーションを戻す方法について備忘録として紹介します。

コマンド

1つのマイグレーションを戻す

最も基本的な方法は、1つのマイグレーションを戻すことです。
以下のコマンドを実行します。

rails db:rollback

このコマンドを実行すると、直近の1つのマイグレーションが取り消されます。データベースは1つ前の状態に戻ります。

複数のマイグレーションを戻す

複数のマイグレーションを戻したい場合は、STEPオプションを使用します。
以下のコマンドを実行します。

rails db:rollback STEP=3

この例では、直近の3つのマイグレーションが取り消されます。STEPの値を変更することで、戻すマイグレーションの数を調整できます。

マイグレーションを戻して再実行する

直近のマイグレーションを取り消してから再度実行したい場合は、以下のコマンドを使用します。

rails db:migrate:redo

このコマンドを実行すると、直近の1つのマイグレーションが取り消され、その後再度実行されます。

複数のマイグレーションを取り消してから再度実行したい場合は、STEPオプションを使用します。

rails db:migrate:redo STEP=3

この例では、直近の3つのマイグレーションが取り消され、その後再度実行されます。

全てのマイグレーションを戻す

データベースを完全に最初の状態に戻すためには、以下のコマンドを実行します。

rails db:migrate:reset

このコマンドは、全てのマイグレーションを取り消し、db/schema.rbファイル(またはstructure.sqlファイル)を使用してデータベースを再構築します。データベースを初期状態に戻したい場合に使用します。

まとめ

これらのコマンドを使用することで、より柔軟にマイグレーションを取り消したり、再実行したりすることができます。

参考資料

https://railsguides.jp/active_record_migrations.html#ロールバック
https://railsdoc.com/page/rails_db_migrate

Discussion