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

Proveďte alembický upgrade ve více schématech

Nakonec jsme použili mechanismus událostí sqlalchemy k zachycení dotazů před jejich provedením a přidání předpony ke změně schématu:

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)

Tímto způsobem můžeme spustit migraci alembic několikrát, přičemž se ujistíme, že schema_name je pokaždé správně vyřešeno a vše funguje hladce




  1. Proč dotaz Oracle 12c vyžaduje dvojité uvozovky kolem tabulky

  2. Použijte Access nebo MySQL jako backendovou databázi

  3. Jak zkontrolovat, zda na Ubuntu běží služba, jejíž název neznám

  4. Jak mohu vynutit jedinečnost množiny mezi více sloupci?