2016-06-13 1 views
0

Это первый раз, когда я развертываю приложение Play (с пятном) на Heroku. Все работает хорошо, но после определенного момента бездействия, все Datas я хранятся в моей базе данных исчезают ...Play 2.5 - slick: Соединение с базой данных с heroku

В Heroku, я Heroku Postgres дополнения с плана хобби 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:[email protected]: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", 
    ... 

) 

Благодарим за помощь!

+0

Обратите внимание, что данные, вероятно, исчезает, так как он хранится в базе данных H2 в оперативной памяти, который теряется после перезапуска процесса (что происходит автоматически на Heroku). База данных Heroku является постоянной. – codefinger

ответ

0

Проблема, вероятно, заключается в вашей конфигурации. db.default.*: ignored by Slick, поэтому ваше приложение, вероятно, связано с базой данных H2 в памяти, а не с Postgres.

Просто обновить конфигурации, чтобы указать Slick на нужную базу:

slick.dbs.default.driver="slick.driver.PostgresDriver$" 
slick.dbs.default.db.driver="org.postgresql.Driver" 
slick.dbs.default.db.url=${JDBC_DATABASE_URL} 

Или

slick.dbs.default.driver="slick.driver.PostgresDriver$" 
slick.dbs.default.db.dataSourceClass = "slick.jdbc.DatabaseUrlDataSource" 
slick.dbs.default.db.properties.driver = "org.postgresql.Driver" 
+0

Для получения дополнительной информации см. Документацию PlaySlick https://www.playframework.com/documentation/2.5.x/PlaySlick – codefinger

+0

Спасибо! (Я попробовал это, но у меня была другая ошибка, которую я не видел в потоке журналов ... Извините за беспокойство! ^^) – Lauriane