在 SymmetricDS 引擎属性中读取环境变量

Reading environment variables in SymmetricDS engine properties

我正在使用 Gradle Application plugin 创建 SymmetricDS 的 zip 分发。最好有一种在环境(测试、暂存、生产等)之间切换的简单方法。

SymemtricDS User Guide

SymmetricDS will automatically create a node for each Node Properties
File configured in the engines directory

因此,如果不手动执行此操作,可能无法为所有环境定义引擎并选择启动哪个引擎。

更好的方法可能是让 SymmetricDS 读取一些环境变量并使用它们来定义例如db.url 在引擎文件中。这样,相同的配置可以用于所有环境。这可能吗?

使用 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命令选择一个环境,该命令将选择其中一个配置文件

已经有几个这样的请求。我注意到有人设置 docker 图像也将受益于能够指定动态属性。我在 3.8.12 中添加了使用环境变量或系统属性进行令牌替换的功能。

这是要跟踪的问题:https://www.symmetricds.org/issues/view.php?id=2945