2017-03-26 18 views
0

私はちょうどfile.sqlの移行を行ってデータベースに新しいテーブルを追加しました。flywayMigrateコマンドsbt flywayMigrateを実行しました。今では、同じテーブルに2つの列を追加するのを忘れていました。別の移行を書くオプションがありますが、テーブルを作成してさらに2つの列を追加するために行った移行をロールバックして変更できるときに、移行の数を増やしたくありません。いくつかのマイグレーションをロールバックして変更する方法と、sbt flywayMigrateをもう一度実行する方法を教えてください。Flyway Scalaでマイグレーションをロールバックする方法は?

答えて

2

マイグレーション全体を必ずしも再実行する必要はありません。フライウェイがメタデータに使用するテーブルがあり、それはschema_versionと呼ばれていると思います。最後に適用された移行IDを設定することができます(IIRCに設定されるハッシュがいくつかありますが、一致しない場合はエラーメッセージからそれらを識別することができます)。

+0

https://flywaydb.org/getstarted/howでは、その動作の仕組みをより詳しく説明しています。 –

0

Flyway FAQに記載されているように、ロールバックスクリプトはサポートされていません。

あなたがするオプションがあります。バックアップから

  • ドロップを使用してデータベースを復元し、
  • は手動で移行をロールバックし、メタデータテーブルからそのレコードを削除し、すべての移行スクリプトを再実行するデータベースを再作成

  • +0

    手動で移行をロールバックするにはどうすればよいですか? –

    +0

    データベースに接続し、適切なDDLを実行して追加されたテーブル/列を削除し、他の変更を元に戻します。 –

    関連する問題