2014-03-28 81 views
2

我有一個Heroku帳戶,我創建了一個應用程序和一個Heroku-Postgres數據庫。 我已經將應用程序提交給Heroku雲,但我無法訪問我創建的數據庫。使用Play Framework無法連接到遠程Heroku Postgres數據庫2.2.2

我使用的發揮,當我將項目連接在我的本地數據庫中,application.conf配置:

db.default.driver=org.postgresql.Driver 
db.default.url="jdbc:postgresql://localhost:5432/postgres" 
db.default.user=postgres 
db.default.password=password 

並在本地運行我的服務器,它工作正常。

之前,我上傳我的應用程序的Heroku我改變了這個文件來訪問我的Heroku,Postgres的DB:

db.default.driver = org.postgresql.Driver db.default.url =「的jdbc:PostgreSQL的: // URL:5432 /數據庫名稱用戶名=密碼&通= SSL & =真& sslfactory = org.postgresql.ssl.NonValidatingFactory」

不再需要用戶名和密碼字段。

web: target/universal/stage/bin/playsense -Dhttp.port=${PORT} -DapplyEvolutions.default=true -Ddb.default.driver=org.postgresql.Driver -Ddb.default.url=${DATABASE_URL} 

我發現這個文檔上的:我已經在我的項目命名爲「Procfile」根有創建的文件。我不明白爲什麼它不連接到我的數據庫。 我使用pgAdminIII和DB憑證,它工作正常。

這是缺少/錯誤的東西,我不知道是什麼。

有人可以幫助我嗎?提前致謝!

回答

1

在Heroku上運行時,您可能需要取消設置db.default.userdb.default.password config參數。但我不確定一個簡單的方法來做到這一點。所以我通常做的是沒有設置他們在conf/application.conf,而是我做這樣的事情:

db.default.driver=org.postgresql.Driver 
db.default.url="postgres://postgres:[email protected]:5432/postgres" 
db.default.url=${?DATABASE_URL} 
#db.default.user=postgres 
#db.default.password=password 

,提供了一個默認db.default.url,但如果它被設置與DATABASE_URL的環境變量覆蓋它。

+0

我如何在Heroku上對此進行調試,以查看它是否與我的代碼無關。即使使用這種配置,它也不會訪問我的數據庫。也許這是別的。在本地,一切正常,在我的電腦上運行調試模式並訪問我的pgAdmin本地數據庫。 – Nunovsky

+0

使用'heroku logs'在Heroku上查看您的應用的任何記錄錯誤。 –

相關問題