我希望我的 Play 应用程序将不同的数据库用于测试、本地和生产(生产是 Heroku)环境。
在application.conf
我有:
db.default.driver=org.postgresql.Driver
%dev.db.default.url="jdbc:postgresql://localhost/foobar"
%test.db.default.url="jdbc:postgresql://localhost/foobar-test"
%prod.db.default.url=${DATABASE_URL}
这似乎不起作用。当我运行play test
orplay run
时,所有数据库访问都失败并显示:
Configuration error [Missing configuration [db.default.url]] (Configuration.scala:258)
我对此有几个问题:
一般来说,我对在 Play 中如何配置数据库有点困惑:看起来像是 plain
db
,db.[DBNAME]
并且db. [DBNAME].url
不同的教程在其中做出不同的选择。某些看起来应该可以工作的表达式(例如db.default.url = "jdbc:..."
,在预期对象的位置提供了字符串而失败)。我看到其他人建议我创建单独
prod.conf
的 ,dev.conf
和test.conf
文件,每个文件都包含application.conf
然后包含特定于 DB 的配置。但在这种情况下,我如何指定test
从 Play 控制台运行时要使用的数据库?%env
语法应该在 Play 2 中工作吗?指定使用环境的正确方法是
play test
什么?