Scala 为不同环境配置evolutions脚本

Scala 为不同环境配置evolutions脚本,scala,playframework-2.2,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 db.default.driver=

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

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
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
test.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
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脚本。因此,我将在触发测试脚本之前清理记录

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

~/conf/evolutions/default/

我的问题:

有没有办法将脚本放在不同的位置,并将配置文件设置为引用该位置?我希望将测试脚本放在以下路径中:

~/conf/evolutions/test/

如果有人以某种方式意外地启用了
dev.conf
文件中的演进,并且由于两个配置文件共享相同的数据源名称(
default
),那么
default
文件夹中的所有清理查询都会执行,这对我来说将是一个麻烦


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

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

这样我就必须为每个测试文件清理数据库。如果可能的话,我宁愿在测试开始前只清理数据库一次。这方面运气好吗?我被同一个问题困住了,似乎找不到太多帮助:(不,我没有:(从那以后我再也没有尝试过。不确定他们是否对此做了些什么。你已经找到了答案。你可以把答案放在这里,我会接受的。