2013-05-12 3 views
1

MySQL을 데이터베이스로 처음 사용하여 장고 응용 프로그램을 배포했습니다. 개발 과정에서 마이그레이션을 위해 sqlite3과 south를 사용하고 있습니다.django - manage.py 오류가 발생했습니다.

python manage.py syncdb 다음 python manage.py migrate을 사용하여 데이터베이스를 초기화한다고 가정합니다. 그러나, 나는 python manage.py syncdb 생산에 처음으로 실행할 때, 나는 다음과 같은 오류 얻을 :

DatabaseError: relation "utils_message" does not exist LINE 1: ...sage"."message_type", "utils_message"."text" FROM "utils_mes...

나는 무엇을 누락 될 수 있습니까? 어떤 종류의주기적인 종속성 일 수 있습니까?

내 INSTALLED_APPS 설정은 다음과 같습니다

INSTALLED_APPS = (
    'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 
    'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 
    'south', 'django.contrib.admin', 'mainapp', 'employerprofile', 'applicantprofile', 
    'companies', 'postings', 'utils', 'searchjobs', 'comments', 'projectapp', 
    'cart', 'applications', 'packages', 'feedback', 'cvbank', 'staffpostings', 
    'logs', 
    # Uncomment the next line to enable admin documentation:      
    # 'django.contrib.admindocs',              
) 
+0

MySQL에서 데이터베이스를 만들었습니까? (settings.py'DATABASES [ 'default'] [ 'NAME']) – stalk

+0

예, 데이터베이스가 존재하고 django db 사용자에게 모든 권한이 있습니다. – krm

+2

데이터베이스에 이전 테이블 스키마가 포함되어 있습니까? Django는 스키마를 업데이트 할 수 없습니다 (예 : 이미 동기화 된 기존 모델의 새 필드를 ./manage syncdb와 함께 사용할 수 없음). 처음부터 새로 만들 수 있습니다 (South를 사용하여 이전 스키마를 마이그레이션하고 업데이트 할 수 있음) – 0xBAADF00D

답변

0

문제를 해결. 이는 모델 간의 종속성으로 인해 발생했습니다.

나는 Message에 그렙을했고, postings 응용 프로그램에서 모델의 필드, 즉 기본 값으로 utils 응용 프로그램에 Message 모델의 인스턴스에 의존한다는 것을 발견 : 그래서

from utils.models import Message 
... 
default_message = Message.objects.get(message_type='application-receipt-message').text 
... 
class Posting(models.Model): 
    .... 
    receipt_message = models.TextField(default=default_message) 
    ... 

default_message을 빈 문자열로 변경했으며 python manage.py syncdb 다음에 python manage.py migrate이 나오고 더 이상 문제가 발생하지 않았습니다.

관련 문제