如何在flywaydb中组织具有多个数据库环境的迁移文件?

时间:2018-02-24 13:02:16

标签: database postgresql flyway database-versioning

我刚开始使用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复制粘贴到不同的文件中),然后将特定于环境的迁移应用于每个环境?

1 个答案:

答案 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