대상 데이터베이스가 최신 상태가 아닙니다.
Flask 앱을 마이그레이션하고 싶습니다. 저는 Alembic을 사용하고 있습니다.
그러나 다음과 같은 오류가 발생합니다.
Target database is not up to date.
온라인에서 이것과 관련이 있다고 읽었습니다. http://alembic.zzzcomputing.com/en/latest/cookbook.html#building-an-up-to-date-database-from-scratch
불행히도 데이터베이스를 최신 상태로 유지하는 방법과 링크에 제공된 코드를 어디에 / 어떻게 작성해야하는지 잘 모르겠습니다. 마이그레이션 경험이 있으시면 설명해 주시겠습니까?
감사
수동으로 또는으로 마이그레이션을 만든 후를 사용하여 --autogenerate
적용해야합니다 alembic upgrade head
. db.create_all()
셸에서 사용한 경우를 사용 alembic stamp head
하여 데이터베이스의 현재 상태가 모든 마이그레이션의 응용 프로그램을 나타냄을 나타낼 수 있습니다 .
내 공부는이 질문과 같습니다. "./manage.py db migrate -m 'Add relationship'"을 실행하면 "alembic.util.exc.CommandError : 대상 데이터베이스가 최신 상태가 아닙니다."와 같은 오류가 발생합니다.
그래서 마이그레이션 상태를 확인했습니다.
(venv) ]#./manage.py db heads
d996b44eca57 (head)
(venv) ]#./manage.py db current
INFO [alembic.runtime.migration] Context impl SQLiteImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
715f79abbd75
머리와 전류가 다르다는 것을 발견했습니다!
이 단계를 수행하여 수정했습니다.
(venv)]#./manage.py db stamp heads
INFO [alembic.runtime.migration] Context impl SQLiteImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
INFO [alembic.runtime.migration] Running stamp_revision 715f79abbd75 -> d996b44eca57
그리고 이제 전류는 머리와 동일합니다.
(venv) ]#./manage.py db current
INFO [alembic.runtime.migration] Context impl SQLiteImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
d996b44eca57 (head)
이제 마이그레이션을 다시 수행 할 수 있습니다.
어떤 이유로 마이그레이션 파일 중 일부를 삭제해야했습니다. 이유가 확실하지 않습니다. 그러나 그것은 문제를 해결했습니다.
한 가지 문제는 데이터베이스가 모든 새 테이블 등으로 제대로 업데이트되지만 자동 마이그레이션을 사용할 때 마이그레이션 파일 자체에 변경 사항이 표시되지 않는다는 것입니다.
누군가가 더 나은 솔루션을 가지고 있다면 지금 내 솔루션이 일종의 해키이므로 알려주십시오.
이 오류를 수정하려면 최신 마이그레이션 파일 (python 파일)을 삭제 한 다음 새로 마이그레이션을 수행하십시오.
db upgrade 명령을 실행하기 전에 모든 테이블을 삭제하십시오.
이를 해결하기 위해 마이그레이션중인 테이블을 삭제 (삭제)하고 다음 명령을 실행합니다.
flask db migrate
과
flask db upgrade
참조 URL : https://stackoverflow.com/questions/17768940/target-database-is-not-up-to-date
'IT이야기' 카테고리의 다른 글
matplotlib의 컬러 맵을 사용하여 숫자를 색상에 매핑하는 방법 (0) | 2021.04.05 |
---|---|
속기 배경 속성에 배경 표지 값을 포함하는 방법 (0) | 2021.04.05 |
삭제 후 카메라 권한을 기억하는 iPad— 지우는 방법 (0) | 2021.04.05 |
Angular에서 '[object Object]'비교 시도 오류 (0) | 2021.04.04 |
TypeScript 해시 맵 / 사전 인터페이스 (0) | 2021.04.04 |