0

Flask-Migrate と Alembic を使用する 2 つの Flask アプリケーションがあります。

3 つのテーブルがあり、1 つのテーブルは 2 つの Flask アプリケーション間で共有され、次のように表されます。shared_models.py

共有テーブルにプロジェクト alembic_version の 1 つがスタンプされ、shared_models.pyファイルが同一であるにもかかわらず、他のプロジェクトがそれについて不平を言うという問題に直面しています。

この種の環境を処理するための優れた戦略は何ですか?

4

1 に答える 1

2

1 つのオプションは、2 つのアプリケーションに 2 つの別個のデータベースを使用することです。2 つのアプリのどちらが、共有されているテーブルを所有しているかを決定する必要があります。各アプリケーションは独自のデータベースで移行を追跡し、共有テーブルを所有していないアプリケーションは、Flask-SQLAlchemy のバインド機能を介して、他のアプリのデータベースからこのテーブルにアクセスします。

これが唯一のオプションではありません。頭に浮かぶもう 1 つの方法は、単一のデータベースを使用し続けることですが、2 つのアプリのいずれかで Alembic を構成して、この共有テーブルを無視することです。これは、ファイルに対して手動で行う必要がありenv.pyます。Flask-Migrate には、テーブルを無視するコードを生成するための直接的なサポートがありません。

于 2016-12-29T07:06:10.737 に答える