sql >> Databasteknik >  >> RDS >> PostgreSQL

Ställa in schema för alla frågor om en anslutning i psycopg2:Hämtar rasvillkor vid inställning av sökväg

Jag tror att en mer elegant lösning skulle vara att ställa in search_path i options parameter för connect() , som så:

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

Naturligtvis kan du använda "alternativ" som en del av anslutningssträngen. Men att använda sökordsargument förhindrar allt krångel med strängsammansättningar.

Jag hittade den här lösningen i denna psycopg2-funktionsbegäran . När det gäller själva parametern "options" nämns den här .



  1. Golang SQL-frågevariabelersättning

  2. Lagra bilder i PostgreSQL

  3. PHP-formulär session_start():Kan inte skicka sessionscachebegränsare

  4. MySQL SELECT-frågesträngsmatchning