私の現在のプロジェクトでは、初期データをデータベースにインポートするために使用されるいくつかのマイグレーションマイグレーションがあります。このデータは、特に開発者がプロジェクトをすばやく設定できる場合に便利です。生産データはいくつかのバッチジョブによってインポートされ、新しいバージョンを持ちます。フライウェイ:マイグレーションから大きなマイグレーションスクリプトを削除する方法
これらの移行の一部は非常に大きく(〜20MB)、アプリケーションが起動するたびにマイグレーションのチェックサムを計算するのに時間がかかります。これはまた、これにより時間がかかるため、統合テストの問題です。
私はこのアプローチをフライウェイの悪用と考えています。移行ツールは、主に構造データに使用する必要があります。
アプリケーションからこれらのファイルを削除し、開発環境でテストデータをインポートするために構成管理ツール(Vagrant、Puppet、Chefなど)を使用します。ただし、マイグレーションファイルがアプリケーションから削除されるだけではありません。マイグレーションがデータベースに記録されているが、アプリケーションの移行には存在しないとFlywayは不平を言います。
私の最初の思考は- は、テストデータ
- が、その後schema_versionテーブルから
を移行を削除し、削除します優先度の高いバージョン番号を持つ新しい移行を作成することでした
移行スクリプトを削除します。これは動作しませんが、Flywayは削除された移行スクリプトがないと不満を持ちます。 移行でschema_versionテーブルと対話できないという制限はありますか?
その他のオプションはありますか?可能であれば私は手動でではなく、フライウェイを使ってこれをしたいと思っています。