sql >> Database teknologi >  >> RDS >> PostgreSQL

Indstilling af skema for alle forespørgsler i en forbindelse i psychopg2:Henter race condition ved indstilling af search_path

Jeg tror, ​​at en mere elegant løsning ville være at indstille search_path i options parameter for connect() , sådan:

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

Selvfølgelig kan du bruge "indstillinger" som en del af forbindelsesstrengen. Men brug af søgeordsargumenter forhindrer alt besværet med strengsammenkædninger.

Jeg fandt denne løsning i denne psycopg2-funktionsanmodning . Hvad angår selve "options"-parameteren, er den nævnt her .



  1. Databasehardware og infrastrukturtendenser

  2. Importer filstørrelsesgrænse i PHPMyAdmin

  3. MySQL CURRENT_TIMESTAMP-feltopdateringer ved hver opdatering

  4. Afslutning af inaktive mysql-forbindelser