Alembic 几个模块到单个数据库
Alembic few modules to single database
我们需要构建一个拆分为多个模块的大型应用程序,
App
- Module1 --> AppDb
- Module2 --> AppDb
- Module3 --> AppDb
每个模块,我们都想添加 alembic 版本,所有模块都连接到单个数据库。但是我们不能添加修订,因为它与其他模块的修订冲突(因为所有版本存储在相同的 table alembic_version,所以迁移相互冲突)。
如果您在每个 Module1
、Module2
和 Module3
中使用单独的简单迁移,每个迁移都有自己的 env.py
(或类似),则解决方案可以是使用 context.configure
的 version_table
参数,它允许您覆盖版本 table.
的名称
即将 env.py
修改为
context.configure(
connection=connection,
target_metadata=target_metadata,
version_table='alembic_module1_version'
)
我们需要构建一个拆分为多个模块的大型应用程序,
App
- Module1 --> AppDb
- Module2 --> AppDb
- Module3 --> AppDb
每个模块,我们都想添加 alembic 版本,所有模块都连接到单个数据库。但是我们不能添加修订,因为它与其他模块的修订冲突(因为所有版本存储在相同的 table alembic_version,所以迁移相互冲突)。
如果您在每个 Module1
、Module2
和 Module3
中使用单独的简单迁移,每个迁移都有自己的 env.py
(或类似),则解决方案可以是使用 context.configure
的 version_table
参数,它允许您覆盖版本 table.
即将 env.py
修改为
context.configure(
connection=connection,
target_metadata=target_metadata,
version_table='alembic_module1_version'
)