sh1’s diary

プログラミング、読んだ本、資格試験、ゲームとか私を記録するところ

Heroku Postgres と navicat を接続する

f:id:shikaku_sh:20210917173942p:plain

Heroku Postgres と navicat をテスト接続する機会があったので、その内容をメモ。

f:id:shikaku_sh:20210917184141p:plain

珍しく RDBMS でも無料で使えるクラウドサービスです。行数の制限が厳しいのでテスト用だけど用途次第で便利。

Heroku Postgres を有効化

まず、Heroku で Postgres を利用するときは Create new app でプロジェクトを作成して、プロジェクトの Resources > Add-ons で「Heroku Postgres」を追加します。(Free)

f:id:shikaku_sh:20210917173119p:plain:w500 f:id:shikaku_sh:20210917173138p:plain:w500

「Heroku Postgres」を開いて、Settings から「Database Credentials」を確認します。navicat の設定に必要な情報がすべて表示できます。

  • Host
  • Database
  • User
  • Port
  • Password
  • (URI) 上記5つをまとめたもの

f:id:shikaku_sh:20210917173217p:plain:w500

navicat の設定

上記5つの設定(ホスト、データベース、ユーザー、ポート、パスワード)を Navicat の接続設定に入力します。

f:id:shikaku_sh:20210917173235p:plain:w500

古い navicat lite を使っていると、SSL 設定が通らないのでエラーになります。navicat essentials は OK です。

SSL タブで以下を設定:

  • SSL を使用する(有効化)
    • SSL モード:require

f:id:shikaku_sh:20210917173316p:plain:w500

この状態で「接続をテストする」を選択して、正しく動作するかどうかを確認します。

データベースタブの設定から、Heroku の「Database Credentials」で確認したデータベース ID に該当するものを自動オープンにチェックします。

f:id:shikaku_sh:20210917173329p:plain:w500

この設定をしないと、大量の DB スキーマが表示されるため、設定しておくことをオススメします。

f:id:shikaku_sh:20210917173414p:plain:w500

接続できたので、おまけでテーブルを作って動作をチェックします。

テーブルのサンプル

ID を作ったときは、シーケンスで自動的に ID を割り当てしておくと便利。(autoincrement みたいなもの)

f:id:shikaku_sh:20210917173433p:plain

  • nextval('シーケンス名')
  • nextval('sample_id_autoincrement'::regclass)

ちなみに作成したシーケンス。

f:id:shikaku_sh:20210917173529p:plain:w500

Postgre の機能です。MySQL の AUTO_INCREMENT 相当。レコードには単純でユニークな値を持たせてほしい。

参考