PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Извършване на алембична надстройка в множество схеми

Това, което в крайна сметка направихме, беше да използваме механизма за събития на sqlalchemy, за да уловим заявките, преди да бъдат изпълнени, и да добавим префикс, за да променим схемата:

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)

По този начин можем да стартираме migrate на alembic няколко пъти, като се уверим, че schema_name се разрешава правилно всеки път и всичко работи гладко




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Не може да се свърже с PostgreSQL сървър

  2. Pg_dump и pg_restore на Postgresql в различни основни версии?

  3. Как да проверите дали PostgreSQL масивът съдържа стойност

  4. Функция STRING_AGG() в PostgreSQL

  5. Как да избегнем рекурсия в тригер за актуализация, който извършва актуализация?