flask - 在多个项目中使用 Alembic 迁移

标签 flask sqlalchemy flask-sqlalchemy alembic flask-migrate

我有两个使用 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/

相关文章:

python - Flask 的 Apache 配置文件

mysql - 维护MySQL和文件系统之间的数据完整性

flask - 如何使用外键替换为其值的API端点?

flask - 根据flask admin中另一个字段的值显示字段

python - SQLAlchemy 在事务中空闲

python - Flask View 引发 TypeError 得到意外的关键字参数

python - 从 flask-admin 的模型 View 中删除/隐藏/删除 "with selected" View

python - 如何在 VS Code 中调试 Flask 应用程序

python - 从 sqlalchemy 更改为 postgresql 并得到关系错误

python - SQLAlchemy 0.7.8 原始字符串查询参数问题