2017-10-04 106 views
2

我一直認爲,如果移除了應用於flywaydb的遷移(兩者:從DB schema_version表和遷移sql文件入口),那麼應用程序(在springpath中用flyway在classpath中編寫)在啓動時會崩潰,因爲無效校驗和。FlywayDB遷移清除

實際上(我今天測試過),當遷移文件和數據庫條目都被刪除時,應用程序啓動就好了,我發現有點混亂。

flyway如何計算校驗和?它僅基於正在應用的遷移文件的內容還是以前的遷移也被考慮在內?

另外,如果刪除了文件和表條目,是否可以安全地刪除已經應用的遷移?

回答

2

這裏有很多問題。對於您的主要問題,此行爲由ignoreMissingMigrations標誌控制。請參閱https://flywaydb.org/documentation/commandline/migrate

校驗和根據遷移文件的內容計算(忽略由於Git CRLF轉換引起的行結束)。

如果遷移文件及其元數據表中的條目都被移除,Flyway對此不知情。但這並不意味着它是安全的,因爲它可能會影響您以後重新創建數據庫模式的能力。