Umi Uyuraのブログ

Titaniumを使ったスマートフォンアプリ開発を中心に、プログラミング関連の作業ログ。

DBeaverでHeroku Postgresにつなぐ

久々にHerokuを触ることになり、DBもHeroku Postgresなので、Windowsで使えるPostgreSQLGUIクライアントがないかと探していたところ、良さそうなものを発見。

DBeaver

PostgreSQL専用というわけではなく、MySQLSQLiteなどいろいろなデータベースをサポートしている上に、実はマルチプラットフォームで展開しているものでした。

で、いざHeroku Postgresにつなごうとしたところで、単純にDatabase Credentialsをコピペしただけでは繋がらなかったので、接続方法をメモ。

確認環境

項目 バージョン等
OS Windows 10 Pro
DBeaver 4.2.0

Heroku Postgresへの接続情報の確認

Heroku Postgresへの接続情報は、環境変数 HEROKU_POSTGRESQL_COLOR_URL (※ COLOR 部分はいろいろと変わる)にあります。

プロジェクトフォルダにて以下のコマンドを叩くか、Heroku Dashboardから該当アプリのConfig Variablesから確認します。

$ heroku config:get HEROKU_POSTGRESQL_COLOR_URL -a <app name>

すると、以下の様な形式の文字列が取得できます。

postgres://<user>:<password>@<host>:<port>/<database>

Heroku Postgresへつなぐ

左側に表示されるDatabase Navigator内で右クリックして「Create new connection type」、もしくはメニュー「Database」→「New Connection」を選ぶ。

f:id:umi-uyura:20171018235534p:plain

Select new connection type内で「PostgreSQL」を選択する。

f:id:umi-uyura:20171018235547p:plain

Generalタブ内で、先に調べた接続情報から以下のものを転記する。

  • host
  • port ※たぶんPostgreSQLのデフォルトポート 5432 が設定済
  • database
  • user
  • password

f:id:umi-uyura:20171018235600p:plain

Driver propertiesタブ内で「sslmode」に require と入力する。

f:id:umi-uyura:20171018235613p:plain

「Test Connection」で問題がなければ、あとは「Next」「Next」「Finish」でOK。

f:id:umi-uyura:20171018235625p:plain

Driver propertiesの「sslmode」の設定をしていないと、接続時にエラーになります。

ということが、Herokuドキュメントに書かれていました。

Connecting to Heroku Postgres Databases from Outside of Heroku | Heroku Dev Center

おわり

MacではPSequelをメインで使っていましたが、わりとDBeaverの使い勝手が良かったので、個人Macにも導入することにしました。