我正在使用 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 .
如果您尝试以一次只考虑单个 MetaData 对象的方式运行自动生成,您可能希望在 env.py 文件中添加自定义,以利用 "X" argument .使用此参数接收您要处理的子组件,并在您的 include_object
中查阅该子组件。函数只查看与该子组件相关的对象。
关于sqlalchemy - Alembic:自动生成迁移时如何忽略其他产品的数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31196631/