postgresql 无法使用Play Framework 2.2.2连接到远程Heroku Postgres数据库

cnjp1d6j  于 2023-06-22  发布在  PostgreSQL
关注(0)|答案(1)|浏览(111)

我有一个Heroku帐户,我创建了一个应用程序和Heroku Postgres数据库。我已经将应用程序提交到Heroku云,但我无法访问我创建的数据库。
我正在使用play,当我在本地DB中连接我的项目时,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/database_name?user=name&password=pass&ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory”
不再需要用户和密码字段。我已经在我的项目的根目录中创建了一个名为“Procfile”的文件,其中包含:

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

我在文件上发现了这个。我不明白为什么它不能连接到我的数据库。我使用pgAdminIII和DB凭证,它工作得很好。
这是一个错误的东西,我不知道是什么。
有人能帮帮我吗

o7jaxewo

o7jaxewo1#

在Heroku上运行时,您可能需要取消设置db.default.userdb.default.password配置参数。但我不知道有什么简单的方法。所以我通常不在conf/application.conf中设置它们,而是这样做:

db.default.driver=org.postgresql.Driver
db.default.url="postgres://postgres:password@localhost:5432/postgres"
db.default.url=${?DATABASE_URL}
#db.default.user=postgres
#db.default.password=password

它提供了一个默认的db.default.url,但是如果设置了DATABASE_URL环境变量,则会将其覆盖。

相关问题