sql >> Database >  >> RDS >> PostgreSQL

Voer een alambiek-upgrade uit in meerdere schema's

Wat we uiteindelijk deden, was het gebeurtenismechanisme van sqlalchemy gebruiken om de query's op te vangen voordat ze worden uitgevoerd en een voorvoegsel toe te voegen om het schema te wijzigen:

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)

Op deze manier kunnen we de migratie van alambiek meerdere keren uitvoeren, waarbij we ervoor zorgen dat de schemanaam elke keer correct wordt opgelost en dat alles soepel werkt




  1. Index op tijdstempel:functies in indexexpressie moeten worden gemarkeerd als IMMUTABLE

  2. BoneCP correct gebruik

  3. PostgreSql:Json Array naar rijen met behulp van Lateral Join

  4. Kan MySQL niet installeren op Mac OS X