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

k1LoW/tbls 。 PostgreSQL の public スキーマではないテーブルで `detectVirtualRelations` を使いたい時は、 `dsn` 設定でそのスキーマを指定すると期待通りに動作する

k1LoW/tbls についてまとめ

  • PostgreSQL における detectVirtualRelations の話。
  • 任意のデータベースの public スキーマでは期待通りに機能する。
  • 任意のデータベースの public 以外のスキーマでは
    • 期待通りに機能しない。設定していない状態時と同様の結果となる。
    • dns 設定にて、 options=--search_path%3Dshcema_name などと指定すると期待通りに機能する。
カテゴリー
コンピューター

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

まとめ

つまりこうだ

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

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

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

k1LoW/tbls 。PostgreSQL ではデータベースの public スキーマでのみ `detectVirtualRelations` が発動する。ユーザ用に作成されたスキーマ (例えば `CREATE SCHEMA AUTHORIZATION joe;`) のテーブルでは `detectVirtualRelations` は発動しなかった

参考