2016-11-03 8 views
1

私の現在のプロジェクトでは、初期データをデータベースにインポートするために使用されるいくつかのマイグレーションマイグレーションがあります。このデータは、特に開発者がプロ​​ジェクトをすばやく設定できる場合に便利です。生産データはいくつかのバッチジョブによってインポートされ、新しいバージョンを持ちます。フライウェイ:マイグレーションから大きなマイグレーションスクリプトを削除する方法

これらの移行の一部は非常に大きく(〜20MB)、アプリケーションが起動するたびにマイグレーションのチェックサムを計算するのに時間がかかります。これはまた、これにより時間がかかるため、統合テストの問題です。

私はこのアプローチをフライウェイの悪用と考えています。移行ツールは、主に構造データに使用する必要があります。

アプリケーションからこれらのファイルを削除し、開発環境でテストデータをインポートするために構成管理ツール(Vagrant、Puppet、Chefなど)を使用します。ただし、マイグレーションファイルがアプリケーションから削除されるだけではありません。マイグレーションがデータベースに記録されているが、アプリケーションの移行には存在しないとFlywayは不平を言います。

私の最初の思考は

  1. は、テストデータ
  2. が、その後schema_versionテーブルから

を移行を削除し、削除します優先度の高いバージョン番号を持つ新しい移行を作成することでした

移行スクリプトを削除します。これは動作しませんが、Flywayは削除された移行スクリプトがないと不満を持ちます。 移行でschema_versionテーブルと対話できないという制限はありますか?

その他のオプションはありますか?可能であれば私は手動でではなく、フライウェイを使ってこれをしたいと思っています。

答えて

1

Repairが最適です。これらのデータ移行を空にして、repairコマンドを実行して、空のファイルに基づいてチェックサムを再計算します。

関連する問題