Alembic:自动生成迁移时如何忽略其他产品的数据库表

Alembic: When autogenerating migrations how to ignore database tables by other products

我正在使用 Alembic 来管理数据库的迁移。多个 Python 包使用同一个数据库,每个包都有自己的迁移路径。

如何告诉 Alembic 在生成自动迁移时忽略来自其他包的表?例如当我 运行:

   alembic -c development.ini revision --autogenerate -m "Initial migration"

我的迁移 Python 文件包含其他包的删除表(不在当前的 Alembic env.py 中):

def upgrade():
    ### commands auto generated by Alembic - please adjust! ###
    op.drop_table('table_from_another_package`)

我可以手动编辑迁移文件并删除 drop_table()create_table() 条目,但这是手动容易出错的工作。我宁愿一开始就避免生成它们。

完全控制自动生成的对象是 here

如果您尝试运行自动生成一次只考虑单个元数据对象的方式,您可能想在您的env.py文件中添加自定义,利用"X" argument。使用此参数接收您要处理的子组件,并在您的 include_object 函数中查询它以仅查看与该子组件相关的对象。