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
函数中查询它以仅查看与该子组件相关的对象。
我正在使用 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
函数中查询它以仅查看与该子组件相关的对象。