为不同的环境配置evolutions脚本

时间:2014-01-09 15:22:23

标签: scala playframework-2.2

这些是我的开发和测试环境的配置文件。我只显示数据库配置部分。

dev.conf

db.default.driver=org.postgresql.Driver
db.default.url="jdbc:postgresql://localhost/mydb"
db.default.user=admin
db.default.password=admin
applyEvolutions.default=true
evolutionplugin=disabled

test.conf

db.default.driver=org.postgresql.Driver
db.default.url="jdbc:postgresql://localhost/mytestdb"
db.default.user=admin
db.default.password=admin
applyEvolutions.default=true
evolutionplugin=enabled

基本上我计划将evolutions db script 仅执行到测试数据库。所以我会在触发测试脚本之前清理记录。

根据the documentation,必须将进化脚本放在与数据源同名的文件夹中,在这种情况下为default

  

〜/ CONF /演进/默认/

我的问题:

有没有办法让我把脚本放在不同的位置并设置配置文件来引用那个?我想把测试脚本放在这条路上:

  

〜/ CONF /演进/测试/

如果以某种方式某人意外地启用dev.conf文件中的演进并且因为两个配置文件共享相同的数据源名称(default),那么对我来说会很麻烦。执行default文件夹中的-up查询。

我现在能想到的另一个解决方法是为不同的环境使用不同的数据源名称,但这意味着代码更改,因为应用程序不再使用default数据源。我想避免这种情况。

1 个答案:

答案 0 :(得分:0)

也许你可以直接从某种文本夹具中使用evolutions逻辑? play.api.db.evolutions.Evolutions.applyFor(dbName, path)似乎可以解决问题。