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

标签 sqlalchemy alembic

我正在使用 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/

相关文章:

postgresql - 如何让 alembic 在 after_create 上发出自定义 DDL?

python - Alembic:包括约束以拒绝带有字符的字符串

python - 在namedtuple中查询,属性错误

python - 在 sqlalchemy 中使用 session 范围之外的对象

python - SQLAlchemy 中的计数和分组依据

python - alembic create_table 使用 declarative_base 派生对象

python - 通过 alembic 脚本并发数据库表索引

python - Flask 迁移(Alembic)不创建迁移

python - Sqlalchemy 使用数组过滤嵌套 json

python - 如何在 SQLAlchemy 中实现未知/可选字段,用户可以在其中添加自己的新字段?