java Spring

Springで環境毎に異なるDBを設定する。

更新日:

内容

本番環境と開発環境では異なるDBを使用することが多いです。
本記事ではHerokuとローカル開発環境で使用するDBを分け、開発者が意識することなく切替えられるようにします。
Herokuではpostgresqlを使用しローカルではH2でpostgresqlを構成します。

環境変数を設定

Herokuの場合はHeroku CLIを使用して環境変数を設定します。

HerokuのDBを設定

HerokuのwebコンソールからResourcesからHeroku Postgresを選択。

Hobby DEV -Freeを選択しProvision。

作成されたHeroku Postgresをクリックしてコンソールを開き、SettingsからView Credentialをクリック
Host, Database, User, Port, Passwordをメモ。

pom.xmlにH2とPostgresqlを追加します。

pom.xml

追加のapplication.propatiesとH2用のスキーマとデータを作成

各ファイルを編集

application.propaties

application-local.properties

application-heroku.properties
※HerokuのDB情報に置換してください。

※Herokuとローカルで共通の変数があれば、application-common.propertiesへ記載してください。

H2のテーブル定義をschema.sqlに追加。
※postgresqlの制約でテーブル名を「user」とすることはできません。H2では作成可能ですが、Herokuでエラーとなるので「usertbl」としてます。

data.sqlに初期データを追加。
※パスワードはbcryptを使用した場合の”password”です。

Heroku Postgresのコンソールを開き、SettingsからView Credentialをクリックして表示されるHeroku CLIをターミナルにコピペしてHeroku Postgresqlに接続し、同じテーブルとテストデータを作成する。

posrgresqlのコマンド操作を終了。

お疲れ様でした!

-java, Spring

Copyright© 若手SIerサラリーマンの独学メモ , 2024 All Rights Reserved Powered by STINGER.