Flask-Migrate==2.0.0
을 사용 중입니다. 변경 사항을 올바르게 감지하지 못합니다. python manage db migrate
을 실행할 때마다 이전 버전에서 성공적으로 추가되었지만 모든 모델에 대한 스크립트가 생성됩니다. 두 개의 새 열을 테이블에 추가했습니다. 마이그레이션 리비전에는 테이블이 추가되는 대신 두 개의 새 열만 있어야합니다. 내가 누락 된 것이 있습니까? 일이 뭐죠 여기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
명령을 다시 실행 개정판에는 모든 테이블과이 두 개의 새 컬럼에 대한 스크립트가 들어 있습니다. 예를 들어, 첫 번째 개정판에서 나는 이와 비슷한 것을 가지고 있습니다.
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'
)
두 번째 개정 본에는 정확히 동일한 코드가 들어 있습니다. 나는 왜 그것이 이미 생성되었는지 이해하지 못한다.
나는 그것을 약간 googled 내 문제는 정확하게 https://github.com/miguelgrinberg/Flask-Migrate/issues/93처럼 보이지만 나는 오라클 DB를 사용하지 않고있다. PostgreSQL을 사용하고 있습니다. 또한 어떤 효과가 있는지 모르겠지만 기본 공개 스키마에 내 테이블을 만들지 않고 테이블 (100 개 정도)이 많아서 두 개의 새로운 스키마 (schema_a 및 schema_b)를 작성합니다. 그래서 그들을 정리하는 것.
편집 2
첫 번째 문제는
env.py.에서 = 진정한
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
각 외래 키 제약 조건에 이름을 추가했지만 아무런 효과가 없습니다.
당신 유무 : Btw는
postgres
를 사용하는 동안 나는 당신과 같이 블록context.configure
에서include_schemas
옵션을 포함해야한다는 것을 지적하고 싶습니다, 2 시간 동안 같은 문제에 슬픔이 있었다 당신의 문제에 관한이 토론을 보았습니까? https://groups.google.com/forum/#!topic/sqlalchemy-alembic/FA8wpmPJc7U – Miguel