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

Udfør alembic-opgradering i flere skemaer

Det, vi endte med at gøre, var at bruge sqlalchemys hændelsesmekanisme til at fange forespørgslerne, før de udføres, og tilføje et præfiks for at ændre skemaet:

def before_cursor_execute(conn, cursor, statement, parameters, context, executemany):
    schema_name = <Logic to resolve schema name>
    statement = "SET search_path TO '%s'; %s" % (schema_name, statement)
    return statement, parameters
    ......
    (later in the code)
    listen(Engine, 'before_cursor_execute', before_cursor_execute, retval=True)

På denne måde kan vi køre alembics migrering flere gange, og sikre os, at schema_name løses korrekt hver gang, og alt fungerer problemfrit




  1. Tilføj automatisk bogstaver foran et automatisk stigningsfelt

  2. Forespørgsel efter en indlejret tabel

  3. Hvordan returnerer jeg flere resultatsæt med SqlCommand?

  4. Psychopg2-billede blev ikke fundet