sql >> Databáze >  >> RDS >> PostgreSQL

Nastavení schématu pro všechny dotazy připojení v psycopg2:Získání podmínky sporu při nastavování vyhledávací_cesta

Myslím, že elegantnějším řešením by bylo nastavit search_path v options parametr connect() , asi takhle:

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

Samozřejmě můžete použít "volby" jako součást připojovacího řetězce. Použití argumentů klíčových slov však zabrání všem potížím se zřetězením řetězců.

Toto řešení jsem našel v tomto žádosti o funkci psycopg2 . Pokud jde o samotný parametr „options“, je zmíněn zde .



  1. Odebrat SCHEMABINDING ze zobrazení na serveru SQL Server

  2. Znovu použijte vypočítanou hodnotu výběru

  3. Automatická aktualizace zobrazení v MySql

  4. Rozlišování malých a velkých písmen v MySQL