我刚刚使用MySQL作为数据库部署了django应用程序。在开发中,我使用sqlite3和south进行迁移。
我想我要使用python manage.py syncdb
然后使用python manage.py migrate
来初始化数据库。但是,当我第一次在生产中运行python manage.py syncdb
时,我收到以下错误:
DatabaseError:关系“utils_message”不存在 第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 :(得分:0)
解决了这个问题。这是由模型之间的依赖引起的。
我在Message
上做了一个grep,发现postings
应用中模型中的字段取决于Message
应用中utils
模型的实例它的默认值,即:
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
,并且没有遇到任何问题。