2016-08-01 5 views
1

플라스크 마이 그 레이션을 잘못 사용했습니다. 두 환경 사이에서 나는 migrations 폴더를 독립적으로 생성하고 .gitignore 파일에 migrations 폴더를 추가했습니다.플라스크는 어떻게 현재 버전의 개정 ID를 추적합니까?

이것은 최근에 Alembic 마이그레이션과 직접 상호 작용하고 github에서 이러한 변경 사항을 추적하기 때문에 문제가 발생했습니다.

이것은 내 프로덕션 플라스크 응용 프로그램을 분기하고 이제는 .gitignore 파일에서 해당 항목을 제거하는 마이그레이션 폴더를 추적한다는 것을 의미합니다. 이 지점을 내 로컬로 가져 와서 로컬 DB를 파괴했습니다. 추적 된 마이그레이션을 실행했는데 제대로 작동하는 것 같습니다.

두 환경 사이에서 궁금한 점이 있습니까, 플라스크가 현재 개정 ID가 무엇인지 추적합니까? 내 로컬에서 두 개의 마이그레이션을 만들고 실행하고 migrations 폴더를 푸시한다고 가정합니다. Flask의 Migrate는이 두 가지 버전을 어떻게 추적 할 것이며, 프로덕션 환경에서 db upgrade를 실행할 때 Production에서이를 실행합니까?

답변

1

Alembic (Flask-Migrate 뒤에있는 엔진)은 데이터베이스에 alembic_version이라는 작은 테이블을 삽입합니다. 이 테이블에 데이터베이스의 현재 개정판을 기록합니다. 여기 내 데이터베이스 중 하나에서이 테이블의 덤프는 다음과 같습니다

mydb=# select * from alembic_version; 
version_num 
-------------- 
36e0d1f0d589 
(1 row) 

당신이이 테이블에서 현재 버전을 읽어 업그레이드를 시작하는 곳에서 알게 될 것이다 업그레이드를 실행

.

좋은 질문입니다!

+0

감사합니다. 이것은 매우 유용합니다. –