1

我刚刚部署了第一次使用 MySQL 作为数据库的 django 应用程序。在开发中,我使用 sqlite3 和 south 进行迁移。

我想我将使用python manage.py syncdbthenpython 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',                                                     
)
4

1 回答 1

0

解决了这个问题。这是由模型之间的依赖性引起的。

我做了一个grep Message,发现应用程序中模型中的一个字段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,并且没有遇到任何问题。

于 2013-05-12T18:04:04.233 回答