我卡住了。 Django 1.7,SQLite3。
我更改了我的模型以添加 thumbnail
列,如 this tutorial 中所示.是这样的:
from django.db import models
class Article(models.Model):
title = models.CharField(max_length=200)
body = models.TextField()
pub_date = models.DateTimeField('date published')
likes = models.IntegerField(default=0)
def __str__(self):
return self.title
现在是这样的:
from django.db import models
from time import time
def get_upload_file_name(instance, filename):
return "uploaded_files/%s_%s" % (str(time()).replace(".", "_"), filename)
class Article(models.Model):
title = models.CharField(max_length=200)
body = models.TextField()
pub_date = models.DateTimeField('date published')
likes = models.IntegerField(default=0)
thumbnail = models.FileField(upload_to=get_upload_file_name, null=True)
def __str__(self):
return self.title
我用
将所有数据备份到一个 json 文本文件python manage.py dumpdata article --indent=4 > article.json
然后执行
python manage.py makemigrations
有效。但是
python manage.py migrate
失败
django.db.utils.IntegrityError:NOT NULL 约束失败:article_article__new.thumbnail
现在,即使将 null=True
添加到 models.py
中的 thumbnail
行之后,运行 makemigrations
成功,migrate
以同样的方式失败。
我该怎么办?
最佳答案
我的应用名称(使用 python manage.py startapp
创建)名为 articles
。这是新的 articles\migrations
文件夹,在多次出现 null-constraint 错误之后:
__init__.py
0001_initial.py
0002_auto_20140803_1540.py
0003_auto_20140803_1542.py
0004_auto_20140803_1450.py
0005_auto_20140803_1552.py
__pycache__
__init__.cpython-34.pyc
0001_initial.cpython-34.pyc
0002_auto_20140803_1540.cpython-34.pyc
0003_auto_20140803_1542.cpython-34.pyc
0004_auto_20140803_1450.cpython-34.pyc
0005_auto_20140803_1552.cpython-34.pyc
我删除了两个目录中除 0001 之外的所有 000* 文件。
然后我跑了
python manage.py makemigrations
和
python manage.py migrate
成功了。
感谢上帝 irc.freenode.net/django
。
关于python - Django makemigrations 有效,迁移失败,显示 "django.db.utils.IntegrityError: NOT NULL constraint failed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25109075/