Saya pikir solusi yang lebih elegan adalah dengan mengatur search_path
di options
parameter connect()
, seperti ini:
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
Tentu saja, Anda dapat menggunakan "opsi" sebagai bagian dari string koneksi. Tetapi menggunakan argumen kata kunci mencegah semua kerumitan dengan rangkaian string.
Saya menemukan solusi ini di permintaan fitur psycopg2 ini . Adapun parameter "opsi" itu sendiri, disebutkan di sini .