【rails】データベースのrollback

※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。

データベースの状態は戻せない

【前提】

マイグレーション「rails db:migrate」を実行したかどうかが重要となってくるため、VScodeにあるマイグレーションファイルの中身だけ書き換えても、データベースは元の状態には戻せない


データベースはGitで管理ができない

例)

  1. ブランチAでmigrationを実行
  2. データベースはα→βの状態になる
  3. ブランチをAからmasterに戻す(コミットしない)
  4. データベースはβのままで、αに戻らない

データベースの状態を戻す

データベースを元に戻したいときはロールバックをする

マイグレーションファイルの確認

現在、3つのマイグレーションファイルがある


rails db:rollback

ターミナル画面で、以下を実行する

rails db:rollback

実行結果で「remove_reference(:articles, :user)」と表示される

:userのreferenceを作成していたけど

これを取り除いた(remove)、ということ


再度、rails db:migrateを実行する

→ 取り除いたマイグレーションファイル(:userのreference)が反映する


データベースを最初から作り直したい

マイグレーションファイルは3つある

→ 3つのマイグレーションファイルをロールバックする

rails db:rollback STEP=3

実行すると、マイグレーションファイルが3つ逆行(reverting)する


データはすべて消えてしまうが、データべースの作り直しができる

  • リリース後は大勢の人が実際に利用しているので、ロールバックを行うとデータが消えてしまって大変なことになる!
  • ロールバックは開発中(リリース前)に行うこと!

#DAY21