PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Thực hiện nâng cấp alembic trong nhiều lược đồ

Những gì chúng tôi cuối cùng đã làm là sử dụng cơ chế sự kiện của sqlalchemy để bắt các truy vấn trước khi chúng được thực thi và thêm tiền tố để thay đổi lược đồ:

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)

Bằng cách này, chúng tôi có thể chạy di chuyển của alembic vài lần, đảm bảo schema_name được giải quyết chính xác mỗi lần và mọi thứ hoạt động trơn tru




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có quy ước cho các đối số được đặt tên trong một hàm trong PostgreSQL không

  2. Hành vi kỳ lạ trong Postgresql

  3. Làm cách nào để truy cập postgresql trong Docker bằng sqlalchemy?

  4. Trình kích hoạt cập nhật PostgreSQL

  5. Di chuyển cột văn bản / bytea PostgreSQL sang đối tượng lớn?