2014-12-04 8 views
0

장고 프로젝트 "demo_project"가 있는데 syncdb 명령을 실행하고 테이블과 저장된 데이터를 만들었습니다. 그런 다음이 프로젝트의 복사본 인 "demo_project_copy"를 가져 와서 syncdb 명령을 실행했습니다. 이제 데이터베이스에 저장된 이전 데이터로 로그인 할 수 없습니다 (오류 : 잘못된 자격 증명). 그리고 "demo_project"에서 syncdb를 실행할 때 오류가 발생합니다. "demo_project_copy"의 syncdb가 "demo_project"의 데이터를 덮어 썼습니까? 어떻게 된 거예요?django의 syncdb에서 데이터 덮어 쓰기

+0

나는 오류를 가지고 실제로 일부 모델에서 이전에 사용되는 일부 마이그레이션이 있었다. 그래서 그들은 수동으로 '마이그레이션'을 사용하여 추가해야했습니다. 오후 7시 30 분에 오타가 생겨서 미안하다. – ancho

답변

0

syncdb는 데이터베이스 데이터를 덮어 쓰지 않고 프로젝트에 설치 한 응용 프로그램에 필요한 데이터베이스 테이블을 추가하기 만합니다. 따라서 settings.py 파일의 INSTALLED_APPS에 새 응용 프로그램을 추가 한 다음 syncdb를 실행하면 명령이 필요한 테이블을 추가합니다.

django 1.7.x를 사용하는 경우 django 1.7.x syncdb가 사용되지 않으므로 migrate 명령을 사용하는 것이 좋습니다. syncdb 명령에 대한

참조, 문서 장고 매우 좋다 : https://docs.djangoproject.com/en/1.6/ref/django-admin/#syncdb

+0

django-1.6을 사용하고 있는데, 실제로 일부 모델에서는 이전에 사용되었던 마이그레이션이있었습니다. 그래서 그들은 수동으로 '마이그레이션'을 사용하여 추가해야했습니다. 지쳐서 미안해. 오후 7시 30 분, 여전히 사무실에있다. – ancho

+0

진행중인 프로젝트에서 모델을 변경하려면 South를 사용해야합니다. South은 적절한 방식으로 모델 이전을 처리 할 수 ​​있습니다. 또는 장래에 django 1.7로 업그레이드하는 것이 좋습니다. – Marcs