我有两个使用Flask-Migrate和Alembic的Flask应用程序。
有三个表,其中一个表在两个Flask应用程序之间共享,由shared_models.py
尽管shared_models.py
文件完全相同,但我遇到了共享表上标记了其中一个项目alembic_version的困难,然后另一个项目抱怨了它。
处理这种环境的好策略是什么?
答案 0 :(得分:1)
一种选择是为两个应用程序使用两个单独的数据库。您将必须决定两个应用程序中的哪一个拥有共享的表。每个应用程序都跟踪其自己的数据库上的迁移,而不拥有共享表的应用程序通过Flask-SQLAlchemy的绑定功能从其他应用程序的数据库访问该表。
这不是唯一的选择。另一个想到的是继续使用单个数据库,但在两个应用程序之一上配置Alembic以忽略此共享表。这必须在env.py
文件上手动完成,Flask-Migrate没有直接支持生成忽略表的代码。