PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Execute a atualização do alambique em vários esquemas


O que acabamos fazendo foi usar o mecanismo de eventos do sqlalchemy para capturar as consultas antes de serem executadas e adicionar um prefixo para alterar o 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)

Dessa forma, podemos executar a migração do alambique várias vezes, garantindo que o schema_name seja resolvido corretamente a cada vez e tudo funcione sem problemas