나는 Alembic와 데이터베이스 마이그레이션을 관리하고있어 env.py
(예를 들어, setting target_metadata
) 또는 alembic.ini
(예를 들어, setting sqlalchemy.url
는) 스크립트에서 내 데이터베이스의 마이그레이션을 관리하는 모든 수정없이 alembic init
에 의해 생성 된 기본 파일을 사용하고 싶습니다.Alembic에서 명령 API와 함께 사용하기 위해 필요한 'target_metadata'를 프로그래밍 방식으로 설정할 수 있습니까?
예를 들어, 나는 같은 command 기반 스크립트를 사용하려면 다음 원하는이 모든 작품으로
import os
from alembic.config import Config
from alembic import command
from myapp import db
alembic_cfg = Config(os.path.join(os.path.abspath(os.path.dirname(__file__)), 'alembic.ini'))
alembic_cfg.set_main_option("sqlalchemy.url",
os.environ['DATABASE_URL'])
alembic_cfg.set_main_option("script_location",
os.path.join(os.path.abspath(os.path.dirname(__file__)), '.db_migrations'))
alembic_cfg.set_main_option("target_metadata", db.metadata) # This doesn't work!
command.revision(alembic_cfg, message='Test of new system', autogenerate=True)
command.upgrade(alembic_cfg, 'head')
, 를 표시된 선이 실패하고 난 표시되지 않습니다 제외 방법 target_metadata
(env.py
편집 제외)을 설정하십시오.
Alembic의 명령 API를 사용하는 위 스크립트에서 프로그래밍 방식으로 Alembic에 필요한 target_metadata
을 프로그래밍 방식으로 설정할 수 있습니까?
이러한 확장 프로그램은 훌륭합니다. 문제는 내가 갖고있는 문제와 정확히 일치합니다. 나의 도전은 이제 어느 것을 사용할 것인지 선택하는 것이다. – orome
둘 다 멋지군요. 중요한 질문은 현재 패키지 (최신 플라스크, SQLAlchemy 및 Alembic 등)가 각 패키지의 현재 상태 (활발히 유지 관리됨)입니다. [Miguel 언급] (http://blog.miguelgrinberg.com/post/flask-migrate-alembic-database-migration-wrapper-for-flask) Flask-Migrate를 만드는 그의 이유는 Flask-Alembic이 , 약 1 년 전) "멈춘다." – orome