2016-11-03 197 views
1

我目前的項目有一些Flyway遷移,用於將初始數據導入數據庫。這些數據特別方便開發人員快速設置項目。生產數據通過一些批處理作業導入並具有較新的版本。Flyway:如何從遷移中刪除大型遷移腳本

其中一些遷移非常大(〜20MB),因此每次應用程序啓動時,Flyway都需要一些時間來計算遷移的校驗和。這對於集成測試也是一個問題,因爲這也需要更長的時間。

我認爲這種方法是對Flyway的濫用,我認爲遷移工具應該主要用於結構數據。

我想從我們的應用程序中刪除這些文件,而是使用配置管理工具(例如Vagrant,Puppet,Chef)在開發人員環境中導入測試數據。但是,我不能只刪除應用程序中的遷移文件,因爲Flyway會抱怨遷移已記錄在數據庫中,但不存在於應用程序遷移中。

我的第一個想法是創建具有高優先級的版本號的新移民,將

  1. 刪除測試數據
  2. 從schema_version表中刪除遷移

,然後刪除遷移腳本。然而,這不起作用,Flyway仍然抱怨刪除的遷移腳本丟失。 是否有限制,您不能與遷移中的schema_version表進行交互?

我還有其他選擇嗎?如果可能,我想用Flyway做而不是手動做。

回答

1

Repair是你最好的選擇。清空這些數據遷移並運行repair命令,根據空文件重新計算它們的校驗和。