DBeaverからRenderのPostgreSQLに接続

ちょっと悩んだのでメモ。

結論

接続情報のURLは「PostgreSQL JDBCのURLの形式に合わせて、外部接続用のURLをいじりましょう」ということ(だと思った)。
素直なコピペじゃダメらしいですね。

経緯

ちょっと遊んでみようと思って、RenderのフリープランでPostgreSQLサーバを立てた。
クライアントソフトはDBeaverがお気に入りなので、それを使って操作が出来るようにしておこうと思った。

しかしPostgreSQLの名前くらいしか知らなかった私は、ただ接続するだけのところで躓いたのであった。

やったこと

RenderのPostgreSQLに外部から接続する場合、External Database URLでつなぐ必要があるらしい。 このURLの形式は、Renderのドキュメントによるとpostgres://USER:PASSWORD@EXTERNAL_HOST:PORT/DATABASEとのこと。

素直なので、接続設定のところにそのままコピペ。

すると、JDBCのURLが正しくないと怒られた(画像は例)

エラーメッセージで素直に検索をすると、PostgreSQLプログラマガイドが出てきたので、そこの記述に従う。 www.postgresql.jp

JDBC を使用する場合、データベースは URL(Uniform Resource Locator)で表されます。Postgres では、これは下の形式のどれか1つになります。
- jdbc:postgresql:database
- jdbc:postgresql://host/database
- jdbc:postgresql://host:port/database

この形式に合わせて、先ほどコピペしていたURLを加工する。

jdbc:postgresql://EXTERNAL_HOST:PORT/DATABASE

ユーザー名とパスワードがURLから消えたものの、すぐ下に入力する欄があるので多分問題なし。

入力したら、テスト接続を押して

問題ないみたいなので「OK」


無事設定完了。