在某些环境中将application.conf中的Database对象覆盖为no-op

时间:2016-02-16 23:49:56

标签: playframework typesafe-config hocon

我正在尝试设置一个具有多个数据库连接的应用程序(一些用于readonly,另一些用于readwrite)。

95%的时间我都希望配置它们,因此,我已经适当地指定了环境变量以允许这种情况。

但是,在一些环境中,我想禁用其中一个数据库连接池,除了默认情况下排除该池之外我无法弄清楚如何做到这一点,在95%的环境中,手动指定。

以下是我在application.conf中的所有内容:

db.neo4j = {
    driver: org.neo4j.jdbc.Driver
    ...
}

有没有办法让我可以运行游戏,这样当我这样做时:./bin/run-app我可以指定不加载neo4j数据库连接?

我已经尝试了以下所有方面无济于事:

./bin/run-app -Ddb.neo4j=null
./bin/run-app -Ddb.neo4j={}
./bin/run-app -Ddb.neo4j=None

每次运行时,我都会收到错误neo4j has type STRING rather than OBJECT

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用多个.conf文件并准确指定which one to use when starting your application。每个实例:

./bin/run-app -Dconfig.resource=prod.conf

因此,您可以拥有一个conf文件,其中包含所有必需的配置,另一个文件根本不配置db.neo4j。为避免重复,您可以拥有一个包含所有配置的文件(db.neo4j除外),然后再包含一个仅包含db.neo4j的文件:

档案conf/prod.conf

include "application.conf"

db.neo4j = {
    driver: org.neo4j.jdbc.Driver
    ...
}