2015-04-07 35 views
0

我無法配置常規字符串我玩框架PostgreSQL的連接如下圖所示:播放框架PostgreSQL的連接字符串

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

我得到錯誤「無法連接到數據庫[默認]」。

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

但我想與前版堅守隨着環境已經與這樣的可變配置:

如果我改變的URL,它的工作原理。

我使用的是最新的Play(2.3.8)與Java 1.8和以下JDBC驅動程序:

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

它看起來像如果連接字符串中包含的用戶名/密碼信息工作:

db.default.url="postgres://postgres:[email protected]:5432/mydb" 

這是一個限制還是我錯過了什麼?

回答

1

你已經在這裏放什麼:

​​

不是「規則字符串」 ,但是一個不正確的值。即使你設法找到一種方法來堅持它(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

+1

其實JDBC:Postgres的://不起作用。它應該是jdbc:postgresql://。不管怎樣,謝謝。 – aguyngueran

+0

對:)編輯我的答案。 – marvin82

0

你需要在URL前面指定JDBC知道要加載的驅動程序負責處理數據庫連接

+0

但是,這正是我想如何避免:) – aguyngueran