在某些环境中将 application.conf 中的数据库对象覆盖为无操作
Overriding a Database object in application.conf to no-op in certain environments
我正在尝试设置一个具有多个数据库连接的应用程序(一些用于只读,一些用于读写)。
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
。
谢谢!
您可以使用多个 .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
...
}
我正在尝试设置一个具有多个数据库连接的应用程序(一些用于只读,一些用于读写)。
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
。
谢谢!
您可以使用多个 .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
...
}