HerokuアドオンのPostgreSQLを使用する

HerokuアドオンのPostgreSQLを使用する

Heroku CLIからアドオンをアタッチします。

C:\test>heroku addons:create heroku-postgresql
Creating heroku-postgresql on ⬢ rocky-tor-xxxxx... free
Database has been created and is available
! This database is empty. If upgrading, you can transfer
! data from another database with pg:copy
Created postgresql-deep-yyyyy as DATABASE_URL
Use heroku addons:docs heroku-postgresql to view documentation

Webアプリにアタッチされたアドオンを確認します。

C:\test>heroku addons

Add-on Plan Price State
────────────────────────────────────────────── ───────── ───── ───────
heroku-postgresql (postgresql-spherical-yyyyy) hobby-dev free created
└─ as DATABASE

The table above shows add-ons and the attachments to the current app (rocky-tor-xxxxx) or other apps.

管理画面からもアタッチされたことを確認することが出来ます。

HerokuアドオンのPostgreSQLを使用する

環境変数(DATABASE_URL)

Webアプリにアドオンをアタッチした後に環境変数一覧を表示します。

c:\test>heroku config
=== rocky-tor-xxxxx Config Vars
DATABASE_URL: postgres://vrvttyulvslvxd:899cb864531e7c9ca7356e5d5592d8e1b82c80065e89147d1714d681249bd195@ec2-32-172-251-11.compute-1.amazonaws.com:5432/d8xmnn1nlok667
ENERGY: 20 GeV

環境変数(DATABASE_URL)が設定されていることが確認できます。

DBにアクセス

GitHub - heroku/gradle-getting-started
Contribute to heroku/gradle-getting-started development by creating an account on GitHub.

Getting Startedで用意されているプロジェクトは/dbが用意されています。

https://rocky-tor-xxxxx.herokuapp.com/dbにアクセスすると以下の画面が表示されます。

HerokuアドオンのPostgreSQLを使用する

これでticksというテーブルが作成され、1レコードインサートされます。

SQL発行

HerokuApplication.javaにテーブル作成する記述があるのでticksテーブルが作成されているはずです。

HerokuアドオンのPostgreSQLを使用する

管理画面でSQLを発行するには「Resources」からアドオンをクリックします。

HerokuアドオンのPostgreSQLを使用する

新しい画面が表示されるので、「Dataclips」をクリックします。

HerokuアドオンのPostgreSQLを使用する

dataclipを作成します。タイトル入力、DBを選択し、SQL文を記述します。

ここではticksテーブルが作成されているはずなので以下SQLにします。

select * from ticks

HerokuアドオンのPostgreSQLを使用する

最後に「Save & Run」をクリックしたらSQLが発行され、結果が下部に表示されます。

heroku pg:psql

Heroku CLIでselect文を発行したい場合はpsqlコマンドが実行できる環境である必要があります。Windowsの場合はこちらからインストーラーをダウンロードし、インストールしておく必要があります。(コマンドラインツールだけでOK)

インストールされたと仮定すると以下コマンドが実行できます。

C:\test>heroku pg:psql
--> Connecting to postgresql-spherical-79723
psql (13.3)
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.

rocky-tor-xxxxx::DATABASE=>

psqlコマンドと同じくSQL発行できます。

rocky-tor-xxxxx::DATABASE=> select * from ticks;
            tick
----------------------------
2021-06-24 12:57:01.123277
(4 rows)

終了するには\qで終了します。

環境変数(JDBC_DATABASE_URL)

HerokuはWebアプリ(Java)起動時に環境変数(JDBC_DATABASE_URL,JDBC_DATABASE_USERNAME,JDBC_DATABASE_PASSWORD)を作成します。

確認するにはheroku runコマンドで確認します。

Windows

C:\test>heroku run env

A5M2で接続

A5M2で接続できるか確認します。

接続情報はデータベースの「Settings」を選択し、「View Credentials…」をクリックします。

HerokuアドオンのPostgreSQLを使用する

データベースの接続情報が表示されます。この情報を使用します。

HerokuアドオンのPostgreSQLを使用する

A5M2で「PostgreSQL(直接接続)」をクリックします。

「サーバー名」…Host欄の値

「データベース名」…Database欄の値

「ユーザーID」…User欄の値

「パスワード」…Password欄の値

HerokuアドオンのPostgreSQLを使用する

この4つを入力後、「SSL」タブをクリックし、以下変更します。

HerokuアドオンのPostgreSQLを使用する

これでテスト接続すれば正常接続できることが確認できます。

ドキュメント

Heroku Postgres | Heroku Dev Center
The Heroku Postgres add-on is a production database service, offering PostgreSQL, read-only follower databases, snapshots for forks, and local client access.
Java を使用して Heroku でリレーショナルデータベースに接続する | Heroku Dev Center
Java JDBC、Spring、Hibernate を使用して、またはリモートアプリケーションを介してデータベースに接続します。

コメント

タイトルとURLをコピーしました