繁体   English   中英

播放框架PostgreSQL连接字符串

[英]Play framework PostgreSQL connection string

我无法使用以下常规字符串配置Play框架PostgreSQL连接:

db.default.driver=org.postgresql.Driver
db.default.url="postgres://localhost:5432/mydb"

我收到错误“无法连接到数据库[默认]”。

如果我将URL更改为:

db.default.url="jdbc:postgresql://localhost:5432/mydb"

但是我想坚持使用以前的版本,因为环境已经配置了这样的变量。

我正在将最新的Play(2.3.8)与Java 1.8和以下JDBC驱动程序配合使用:

libraryDependencies += "org.postgresql" % "postgresql" % "9.4-1201-jdbc4"

如果连接字符串包含用户名/密码信息,则看起来工作正常:

db.default.url="postgres://postgres:postgres@localhost:5432/mydb"

是一个限制还是我错过了什么?

您在此处输入的内容:

db.default.url="postgres://localhost:5432/mydb"

不是“常规字符串”,而是错误的值。

即使您设法找到一种坚持的方式(Play是开源的,所以没有人可以阻止您),它也会使每个开发人员都迷惑于此设置,并且包括将来的您。

在原始环境之外使用配置密钥是一种冒险的做法,它使您陷入困境,因此您应该与之抗争,而不是与框架抗争。 如果要避免重复配置字符串,则应该执行以下操作:

my.db.address="localhost:5432/mydb"
db.default.url="jdbc:postgresql://"${my.db.address}
my.reusable.key="postgres://"${my.db.address}

并在需要的地方使用my.reusable.key ,同时让db.default.url达到目的。

回答您对可能的限制的疑问,我认为您可能会错过这份明确列出正确配置字符串的文档: https : //www.playframework.com/documentation/2.3.8/SettingsJDBC

您需要在url前面指定jdbc才能知道要加载哪个驱动程序来处理数据库连接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM