将Alembic Migrations与多个项目一起使用

时间:2016-12-28 16:48:04

标签: flask sqlalchemy flask-sqlalchemy alembic flask-migrate

我有两个使用Flask-Migrate和Alembic的Flask应用程序。

有三个表,其中一个表在两个Flask应用程序之间共享,由shared_models.py

表示

尽管shared_models.py文件完全相同,但我遇到了共享表上标记了其中一个项目alembic_version的困难,然后另一个项目抱怨了它。

处理这种环境的好策略是什么?

1 个答案:

答案 0 :(得分:1)

一种选择是为两个应用程序使用两个单独的数据库。您将必须决定两个应用程序中的哪一个拥有共享的表。每个应用程序都跟踪其自己的数据库上的迁移,而不拥有共享表的应用程序通过Flask-SQLAlchemy的绑定功能从其他应用程序的数据库访问该表。

这不是唯一的选择。另一个想到的是继续使用单个数据库,但在两个应用程序之一上配置Alembic以忽略此共享表。这必须在env.py文件上手动完成,Flask-Migrate没有直接支持生成忽略表的代码。