私はFlask-Migrate==2.0.0
を使用しています。変更が正しく検出されません。 python manage db migrate
を実行するたびに、以前のリビジョンで正常に追加されていますが、すべてのモデルのスクリプトが生成されます。 2つの新しい列をテーブルに追加しました。移行リビジョンには、2つの新しい列のみがあり、すべてのテーブルが追加されています。私が行方不明のものはありますか?起こっていただきました!ここでAlembicが正しい変更を生成しない
EDIT 1
です。 Flask_Migrateをプロジェクトに追加しました。
python manage db init
python manage db migrate
python manage db upgrade
フラスコ-移行は、私はいくつかの変更を行った後、この改正
985efbf37786
を持つモデルに加えalembic_versionテーブル用のテーブルを生成しました。私は、私のテーブルの一つに二つの新しい列を追加し、それは新しいリビジョン
934ba2ddbd44
ではなく、ただ唯一のこれら二つの新しい列を追加するのを生成
python manage db migrate
再度コマンドを実行します。リビジョンには、すべてのテーブルとその2つの新しいカラムのスクリプトが含まれています。たとえば、私の最初の改訂版では、このようなものがあります。
op.create_table('forex_costs',
sa.Column('code', sa.String(), nullable=False),
sa.Column('country', sa.String(), nullable=False),
sa.Column('rate', sa.Numeric(), nullable=False),
sa.PrimaryKeyConstraint('code', 'country', name='forex_costs_id'),
schema='regis'
)
2番目の改訂版にもまったく同じコードが含まれています。私はなぜそれが既に生成された場合、なぜ理解していない。
私はそれをちょっと調べて、私の問題はちょうどhttps://github.com/miguelgrinberg/Flask-Migrate/issues/93のように見えますが、私はoracle DBを使用していません。私はPostgreSQLを使用しています。私はそれが何か影響を持っているかどうかわかりませんが、私はデフォルトのパブリックスキーマで自分のテーブルを作成していない代わりに、私は2つの新しいスキーマ(schema_aとschema_b)を作成しています。だからちょうどそれらを手配する。
EDIT 2
最初の問題は、
env.py.で= Trueの
include_schemasを追加することで解決しているようです
新しい移行ではすでに既存のテーブルを作成しようとしていませんが、の外部キーに問題があります。新しいリビジョンを作成するたびに、既存の外部キーを削除してから追加しようとします。ログは次のようになります
INFO [alembic.autogenerate.compare] Detected removed foreign key (post_id)(post_id) on table album_photos INFO [alembic.autogenerate.compare] Detected removed foreign key (album_id)(album_id) on table album_photos INFO [alembic.autogenerate.compare] Detected removed foreign key (user_id)(user_id) on table album_photos INFO [alembic.autogenerate.compare] Detected added foreign key (album_id)(album_id) on table prodcat.album_photos INFO [alembic.autogenerate.compare] Detected added foreign key (post_id)(post_id) on table prodcat.album_photos INFO [alembic.autogenerate.compare] Detected added foreign key (user_id)(user_id) on table prodcat.album_photos
私は各外部キー制約に名前を追加しようとしましたが、何の効果もありません。
はあなたを持っている:ところで
postgres
を使用している間、私は私はあなたがそうのようなブロックcontext.configure
でinclude_schemas
オプションを含めるしなければならないことを指摘したいと思い、2時間同問題と悲しみを持っていましたあなたの問題についてこのディスカッションを見ましたか? https://groups.google.com/forum/#!topic/sqlalchemy-alembic/FA8wpmPJc7U – Miguel