我有两个使用 Flask-Migrate 和 Alembic 的 Flask 应用程序。
共有三个表,其中一个表在两个 Flask 应用程序之间共享,并由 shared_models.py
表示
我遇到了这样的困难:共享表被其中一个项目 alembic_version 标记,然后另一个项目提示它,尽管 shared_models.py
文件是相同的。
处理这种环境的好策略是什么?
最佳答案
一种选择是为您的两个应用程序使用两个单独的数据库。您必须决定两个应用程序中的哪一个拥有共享的表。每个应用程序都跟踪自己数据库上的迁移,不拥有共享表的应用程序通过 Flask-SQLAlchemy 的绑定(bind)功能从其他应用程序的数据库访问该表。
这不是唯一的选择。我想到的另一个方法是继续使用单个数据库,但在两个应用程序之一上配置 Alembic 以忽略此共享表。这必须在 env.py
文件上手动完成,Flask-Migrate 不直接支持生成忽略表的代码。
关于flask - 在多个项目中使用 Alembic 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41366324/