/ /無効なDDLを使用したマイグレーション(マイグレーション5.6で有効) - mysql、flyway、mysql-5.6、mysql-5.7

無効なDDLを使用したマイグレーション(MySQL 5.6で有効) - mysql、flyway、mysql-5.6、mysql-5.7

dbマイグレーションのためにFlywayを使用するシステムが稼働しています。

当初はMySQL 5.5で動作するように開発されましたが、その後の一部のお客様は5.6にアップグレードしてから5.7にアップグレードしました。

5.6と比較してMySQL 5.7に変更があります - 日時フィールドはNOT NULLとしてSQLスクリプトで5.7のデフォルト値を持つ必要がありますが、5.6ではデフォルト値を持たないことが許されています。

したがって、v11でこれを行う移行がありますが、v2では既定値なしで(現在の5.7の)不正な構文を使用する移行があります。

空のMysql 5.7データベースにインストールしようとすると、ステップ2でフライウェイの移行が失敗します。

v2の移行をデフォルトに変更した場合既存のインストールでv2を一度移行した場合、チェックサムが一致しませんでした。

この問題に対処するための「素敵で清潔な」方法は何ですか?

私は、フライウェイベースラインの使用について考えていました私たちが知っているステップをスキップする5.7の新しいインストールは、5.7で失敗し、その後、私たちがフライウェイのベースラインを実行する前にv1とv2のようなスキーマを設定する独立したブートストラップスクリプトを持っています。

この状況を処理し、両方のシナリオをサポートするより良い方法があれば、私はそれについてよく聞きたいと思います。

回答:

回答№1は2

フライウェイの使用 repair あなたが変更を加えたらディスク上のチェックサムを5.6のDBに再整列させるコマンド。