【发布时间】:2016-10-14 08:41:13
【问题描述】:
这是我第一次在 Heroku 上部署 Play 应用(使用 slick)。一切运行良好,但在一段时间不活动后,我存储在 数据库中的所有数据都消失了...
在 heroku 中,我有 Heroku Postgres 附加组件和 plan Hobby Dev。也许是因为这个计划?
还是因为我的配置?
我的“Procfile”:
web: target/universal/stage/bin/square-it-wtf -Dhttp.port=${PORT} -Dplay.evolutions.db.default.autoApply=true -Ddb.default.driver=org.postgresql.Driver -Ddb.default.url=${DATABASE_URL}
来自 application.conf 的我的数据库配置:
slick.dbs.default.driver="slick.driver.H2Driver$"
slick.dbs.default.db.driver=org.h2.Driver
slick.dbs.default.db.url="jdbc:h2:mem:play;DB_CLOSE_DELAY=-1"
db.default.driver=org.postgresql.Driver
db.default.url="postgres://postgres:password@localhost:5432/postgres"
db.default.url=${?DATABASE_URL}
我的build.sbt
libraryDependencies ++= Seq(
"com.typesafe.play" %% "play-slick" % "2.0.0",
"com.typesafe.play" %% "play-slick-evolutions" % "2.0.0",
"com.h2database" % "h2" % "1.4.187",
"org.postgresql" % "postgresql" % "9.4-1201-jdbc41",
...
)
感谢您的帮助!
【问题讨论】:
-
请注意,数据可能正在消失,因为它存储在内存中的 H2 数据库中,在进程重新启动后丢失(这在 Heroku 上自动发生)。 Heroku 数据库是持久的。
标签: database postgresql heroku playframework slick