より洗練された解決策は、search_path
を設定することだと思います options
connect()
のパラメータ 、そのように:
def connect(conn_config_file = 'Commons/config/conn_commons.json'):
with open(conn_config_file) as config_file:
conn_config = json.load(config_file)
schema = conn_config['schema']
conn = psycopg2.connect(
dbname=conn_config['dbname'],
user=conn_config['user'],
host=conn_config['host'],
password=conn_config['password'],
port=conn_config['port'],
options=f'-c search_path={schema}',
)
return conn
もちろん、接続文字列の一部として「オプション」を使用することもできます。ただし、キーワード引数を使用すると、文字列の連結による煩わしさをすべて防ぐことができます。
この解決策は、このpsycopg2機能リクエスト で見つかりました。 。 「options」パラメータ自体については、ここ 。