如何在分布式播放框架应用程序中更改配置

时间:2012-11-02 00:59:07

标签: playframework playframework-2.0

目前使用playframework 2.0.2并在我的application.conf中设置数据库连接信息

db.default.url="jdbc:mysql://localhost:3306/test"
db.default.driver=com.mysql.jdbc.Driver
db.default.user=test
db.default.pass=test

但我想知道的是当我使用“play clean update dist”将我的应用程序投入生产时 然后在现场安装它没有application.conf。这意味着我必须在分发代码之前更改数据库连接?有没有办法在分发后更改配置文件中的数据库连接?

2 个答案:

答案 0 :(得分:8)

当您使用play dist时,配置文件将被打包到zip中的jar文件中。您可以创建一个包含以下内容的conf/prod.conf文件:

include "application.conf"

db.default.url="jdbc:mysql://foo.com:3306/mydb"
db.default.driver=com.mysql.jdbc.Driver
db.default.user=foo
db.default.pass=bar

然后当您启动Play应用程序时,请通过运行:

告诉它使用prod.conf文件
start -Dconfig.resource=prod.conf

答案 1 :(得分:5)

为了避免打包配置文件,我建议您在生产服务器上创建一个prod.conf并存储在解压缩分布式文件的文件夹以外的文件夹中。然后创建一个如下所示的启动脚本(或一个更复杂的启动脚本,将您的应用程序作为服务启动)。通过将配置文件与dist dist包分开,可以避免在推出新更改时意外覆盖它的风险。

#!/bin/bash
sh start -Dconfig.file=/path/to/prod.conf &