mysql - django - 生产中的 manage.py 错误

标签 mysql django manage.py

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

我想我要使用 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',                                                     
)

最佳答案

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

我在 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,并且没有'再遇到任何问题。

关于mysql - django - 生产中的 manage.py 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16506084/

相关文章:

jquery - PHP Mysql 发现错误

javascript - jstools build - JavaScript 在编译后出现问题

django - 如何将 request.slug 添加到通用类 View 中?

django - 同步 sqlite3 for Django 教程

django - 配置 Django 开发服务器输出

python - 我如何告诉 django-admin 使用哪个设置模块?

mysql - 字符在 MySQL 中显示为问号

mysql嵌套查询问题

django rest 框架 - 无法正确获取基于类的 View

php - 'mush' 中的未知列 'where clause'