2013-08-02 4 views
1

저는 꽤 장고를 처음 사용합니다. 그냥 자습서를 통해 지금 내 자신의 애플 리케이션과 함께 놀려고 노력했다.django의 테이블에 열을 추가하십시오.

다음 상황이 발생했습니다. 내 프로젝트 (syncdb를 실행 한 후)를 시작한 후에 모델을 작성했을 때 테이블에서 열을 제외 시켰습니다. 열을 추가하여 models.py 파일을 편집 한 다음 실행했습니다 : django-admin.py flush.

고집스럽게 열을 추가하지 않습니다. manage.py 쉘에서 table.objects.all()을 요청하면 new_column이 존재하지 않는다는 오류가 발생합니다.

마지막까지 난

플러시 처음에 위의하지 않습니다 ... dbshell에 가서 수동으로 테이블을 삭제하고 다시 dbsync 달렸다? django에서 테이블을 만든 후에 테이블을 수정하는 가장 좋은 방법은 무엇입니까?

감사합니다.

답변

1

당신이 찾고있는 것은 데이터 마이그레이션 (구체적으로 스키마 마이그레이션)을 수행하는 방법입니다. 쉬운 방법은 South Documentation을 참조하십시오.

기본적으로 syncdb는 사용자가 지정한 응용 프로그램에 대해 syncdb를 대체 한 다음 자동으로 마이그레이션을 기록하도록 할 수 있습니다. 이것이 처음에는 가치가있는 것보다 더 많은 작업처럼 보일 수 있지만, 일단 데이터베이스에 실제 데이터가있는 시점에 도달하면 테이블을 삭제 (및 다시 생성) 할 필요가 없다는 것을 알게 될 것입니다 모델을 업데이트하십시오.

+0

감사합니다. –

1

이 질문에 대한 대답을보십시오. Why don't my south migrations work?.

따라서 남쪽 명령을 실행하는 데는 몇 가지 상황이 있습니다. 조심해서, 그것은 당신을 곤경에 빠지게 할 수 있습니다.

1

다니엘의 대답은 당신이 알아야 할 것을 다루고 있지만, 다른 질문에 답하기 위해 은 데이터베이스를 포스트 syncdb 상태로 롤백 할 것입니다. 모든 데이터가 삭제되고 initial_data 픽처가 채워지지만 새 필드 등을 검사하지는 않습니다.