カテゴリー
コンピューター

Postgresql に接続する時にデータベースのスキーマを指定するには options で指定するのだけれども、その値としてイコールを使うときは「%3D」を使え

まとめ

つまりこうだ

psql 'postgres://postgres:password@localhost:5432/db2?sslmode=disable&options=--search_path%3Duser2

これで db2 データベースに user2 スキーマで接続する。

実践

root@8c7dfafb8b46:/# psql 'postgres://postgres:password@localhost:5432/db2?sslmode=disable&options=--search_path%3Duser2'
psql (16.1 (Debian 16.1-1.pgdg120+1))
Type "help" for help.

db2=#
db2=#
db2=# select current_schema;
 current_schema
----------------
 user2
(1 row)

db2=#

参考

おわりに

以前の調査、 k1LoW/tbls 。PostgreSQL ではデータベースの public スキーマでのみ detectVirtualRelations が発動する。ユーザ用に作成されたスキーマ (例えば CREATE SCHEMA AUTHORIZATION joe;) のテーブルでは “detectVirtualRelations” は発動しなかった – oki2a24 、で k1LoW/tbls で detectVirtualRelations を設定しても virtual リレーションが貼られなくて、 これは public スキーマでなければ発動しないことまでわかりました。

なんとかしたくて、調べている中で、分かったことを記しているのが本投稿となります。

これが解決したいことに繋がるといいな、と思っていますけれども、どうでしょうね。

以上です。

コメントを残す