최근에 내 모델을 업데이트하고 BooleanField를 추가했지만 그렇게 할 때 python manage.py syncdb
모델의 데이터베이스에 새 필드를 추가하지 않습니다. 이 문제를 어떻게 해결할 수 있습니까?
답변
답변
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를 다시 시작 하십시오 .