django syncdb 및 업데이트 된 모델
최근에 내 모델을 업데이트하고 BooleanField를 추가했지만 그렇게 할 때 python manage.py syncdb
모델의 데이터베이스에 새 필드를 추가하지 않습니다. 이 문제를 어떻게 해결할 수 있습니까?
Django 1.7 이상
Django는 마이그레이션 지원 기능을 내장 하고 있습니다 . 문서를 참조하십시오 .
Django 1.6 이하
Django는 기본적으로 마이그레이션을 지원하지 않습니다. 그래도 정확하게 작동하는 Django 용 플러그 형 앱이 있으며 훌륭하게 작동합니다. 그것은 남쪽 이라고 불립니다 .
Django는 현재이 작업을 자동으로 수행하지 않습니다. 옵션은 다음과 같습니다.
- 데이터베이스에서 테이블을 삭제 한 다음 syncdb를 사용하여 새 형식으로 다시 만듭니다.
- 를 사용하여 데이터베이스에 대한 SQL을 인쇄하고
python manage.py sql (appname)
필드에 추가 된 줄을 찾은 다음alter table
SQL 명령을 사용하여 수동으로 추가합니다 . (이렇게하면 현재 레코드에 대한 필드 값을 선택할 수도 있습니다.) - South를 사용하십시오 ( Dominic의 대답에 따라 ).
다음과 같이하세요:
최고의 답변에서 제안했듯이 South를 사용해 보았고 모호한 마이그레이션 오류 로 한 시간 동안 좌절 한 후 Django Evolution을 대신 사용 하기로 결정했습니다 .
South보다 시작하는 것이 더 쉽다고 생각하며 처음 타자했을 때 완벽하게 작동 ./manage.py evolve --hint --execute
했기 때문에 만족합니다.
Havent는 한동안 django를 사용했지만 syncdb가 db 테이블에서 alter 명령을 수행한다는 것을 기억하는 것 같습니다. 테이블을 삭제 한 다음 다시 실행하면 다시 생성됩니다.
편집 : 죄송합니다 변경을 수행하지 않습니다.
장고 1.6에서
처음에 우리는 실행했습니다-
python manage.py sql <app name>
그런 다음 실행해야합니다.
python manage.py syncdb
Apache 및 MySQL과 함께 Django를 실행하는 경우 makemigrations로 마이그레이션 한 후 apache를 다시 시작 하십시오 .
참고 URL : https://stackoverflow.com/questions/1605662/django-syncdb-and-an-updated-model
'development' 카테고리의 다른 글
작성기를 통해 laravel 설치 프로그램을 설치할 수 없습니다. (0) | 2020.09.17 |
---|---|
Haskell에서 터미널 화면을 어떻게 지우나요? (0) | 2020.09.17 |
모바일 Safari에서 클릭 이벤트에 대한 300ms 지연 제거 (0) | 2020.09.16 |
여러 줄 텍스트 블록과 일치하는 정규식 (0) | 2020.09.16 |
JUnit의 실패와 오류의 차이점은 무엇입니까? (0) | 2020.09.16 |