makoto_blog

パパさん_blog

プログラミング勉強メモや雑記など。

Spring Boot + PostgreSQLを Heroku で動かす

qiita.com

ずっとハマっていたのですが上のサイトを参考に出来たので忘れないように残しておきます。

application.properties

Spring Boot アプリを作りローカルにPostgresqlを導入するところは割愛。

私の場合、application.propertiesが一番肝でした。

以下のようになります。

spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=${DATABASE_URL_SPRINGBOOT:jdbc:postgresql://localhost:5432/makotodb}
spring.datasource.username=${DATABASE_USER:makoto}
spring.datasource.password=${DATABASE_PASSWORD:xxx}

環境変数

DATABASE〜の3つは環境変数です。HerokuCLIから以下のように設定します。

heroku config:set DATABASE_USER="xxx"

xxxはHerokuダッシュボードから確認。 また、HerokuでのDB使い方は以下を参照。

devcenter.heroku.com

ここに記載されている通りheroku config でDATABASE_URLがわかりますが、
これをapplication.propertiesに書いてもだめでした。

上に示したように書かないと出来ません。
以下にも再掲しますが、
この書き方で、Herokuでは環境変数から、ローカルではローカルのpostgresqlを動かせますので開発が捗りますね。
コロンの右が、コロンの左を取得できなかった場合のデフォルト値です。

spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=${DATABASE_URL_SPRINGBOOT:jdbc:postgresql://localhost:5432/makotodb}
spring.datasource.username=${DATABASE_USER:makoto}
spring.datasource.password=${DATABASE_PASSWORD:xxx}