2014-01-29 1 views
2

django를 사용하여 ManyToManyField와 같은 새 필드를 기존 모델에 추가해야합니다. 남쪽을 사용하여 데이터베이스를 업데이트하려면 어떻게해야합니까? 나는 django 기존 데이터베이스에 ManyToManyField를 새로 추가하십시오.

python manage.py migrate appname --fake 

python manage.py schemamigration appname --initial 

을 시도했지만 여전히 오류 메시지가 '그런 테이블'을 받고있다.

데이터베이스에 데이터가있어 데이터를 가져 오는 데 다소 시간이 걸리므로 데이터베이스를 지우고 싶지 않습니다. SQL 언어에 익숙하지 않아서이 문제를 해결할 수있는 편리한 방법이 있습니까?

답변

5

데이터베이스에 현재 새 필드가 이 아닌이 반영되어 있으므로 모델에서 새 필드없이 처음으로 초기 마이그레이션을 만들어야합니다. 당신이 그 일을하고 초기 0001 마이그레이션을 만든 후에, 새로운 필드를 추가 실행할 수 있습니다

python manage.py schemamigration --auto appname 
뉴스 필드를 생성하는 데 필요한 SQL을 생성합니다

다음

pytho manage.py migrate 
실제로 실행 이전

1

--fake은 db에 변경이 없음을 의미합니다. 당신은

  1. 은 다음과
  2. 을 schemamigration을, 새 필드를 추가 한 다음 마이그레이션,
  3. 이없이 초기 마이그레이션을, 새 필드를 제거해야합니다.
관련 문제