我刚开始使用flywaydb。让我们考虑拥有3个数据库的情况 - PROD,TEST,DEMO。
在每次升级(并且没有flywaydb)时,通常会有一组sql文件需要应用于所有数据库,还有一些是特定于环境的,所以最终会出现以下内容:
PROD: dbUpdateSchema2.0.sql,dbUserSchemaUpdate.sql,dbDataUpdatePROD.sql
DEMO: dbUpdateSchema2.0.sql,dbUserSchemaUpdate.sql,dbDataUpdateDEMO.sql
TEST: dbUpdateSchema2.0.sql,dbUserSchemaUpdate.sql,dbDataUpdateTEST.sql
使用flywaydb。你会如何推荐这些更新?特别是,如何共享公共sqls(以便您只有一个该文件的实例并避免将相同的sql复制粘贴到不同的文件中),然后将特定于环境的迁移应用于每个环境?
答案 0 :(得分:1)
如果人使用不同的数据库,documentation建议使用不同的位置,但在推荐中,类比也适用于创建不同的环境:
TEST: flyway.locations=sql/common,sql/test
DEV: flyway.locations=sql/common,sql/dev
PROD: flyway.locations=sql/common,sql/prod
可能与这些问题有关:best-way-for-database-specific-sql-scripts-with-flyway customizing-sql-executed-per-environment