PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Wykonaj aktualizację alembika w wielu schematach

Skończyło się na tym, że wykorzystaliśmy mechanizm zdarzeń sqlalchemy do przechwytywania zapytań przed ich wykonaniem i dodaliśmy prefiks, aby zmienić schemat:

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)

W ten sposób możemy kilkakrotnie uruchomić migrację alembika, upewniając się, że za każdym razem nazwa schematu jest poprawnie rozwiązana i wszystko działa płynnie




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak ocenić wyrażenie w instrukcji select w Postgres

  2. Data zapisu PostgreSQL w 'Lokalnej strefie czasowej', podczas gdy ustawiam ją na 'UTC' za pomocą Django

  3. błąd:Uwierzytelnianie identyfikatora nie powiodło się dla użytkownika

  4. Jaki jest MySQL odpowiednik funkcji EXPLAIN ANALYZE w PostgreSQL?

  5. Postgresql:Generuj sekwencję