sql >> Base de Datos >  >> RDS >> PostgreSQL

Realice la actualización del alambique en múltiples esquemas

Lo que terminamos haciendo fue usar el mecanismo de eventos de sqlalchemy para capturar las consultas antes de que se ejecuten y agregar un prefijo para modificar el esquema:

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)

De esta manera, podemos ejecutar la migración de alambique varias veces, asegurándonos de que schema_name se resuelva correctamente cada vez y que todo funcione sin problemas