我使用Gradle Application plugin创建了SymmetricDS的zip分发版。在环境(测试,升级,生产等)之间切换的简单方法会很好。
SymmetricDS will automatically create a node for each Node Properties
File configured in the engines directory
因此,可能无法为所有环境定义引擎并选择启动哪个引擎,而无需手动执行此操作。
更好的方法可能是让SymmetricDS读取一些环境变量并使用它们来定义例如引擎文件中的db.url
。这样,相同的配置可用于所有环境。这可能吗?
答案 0 :(得分:3)
有几个要求这样的事情。我注意到设置docker镜像的人也可以从指定动态属性中受益。我在3.8.12中添加了使用环境变量或系统属性进行令牌替换的功能。
以下是跟踪它的问题:https://www.symmetricds.org/issues/view.php?id=2945
答案 1 :(得分:0)
使用Gradle Resource filtering替换symmetric-ds.properties
文件中的变量占位符。例如
db.url=${env.db.url}
db.user=${env.db.user}
db.password=${env.db.password}
然后创建尽可能多的配置文件,因为有些环境会保存占位符的实际值,例如dev.conf
:
env.db.url=jdbc://db_host:1520
env.db.user=my_user
env.db.user=p4$$vv0rd
使用命令行参数选择gradle assembly
命令的环境,该命令将选择一个conf文件