Django 1.7(显然)没有在manage.py测试上运行迁移

时间:2014-12-04 15:52:58

标签: python django migration django-1.7 django-migrations

在Django 1.7项目上工作时,我需要在现有模型中添加一个字段。

我添加了以下内容:bairro = models.CharField(max_length=200)

然后我运行了两个命令:

python manage.py makemigrations
python manage.py migrate

现在,测试不再运行了。 每当我运行python manage.py test时,都会出现此错误:

django.db.utils.ProgrammingError: column admin_starbeli_salao.bairro does not exist

这很奇怪,因为如果我打开shell我可以添加对象并且该字段确实有效。

我该怎么办?

1 个答案:

答案 0 :(得分:1)

这是其中一次迁移中的一个问题。

为了找到它的内容,我删除了我的数据库并尝试运行python manage.py migrate,但是出现了相同的错误。
然后我注意到一个相关的模型有这个模型的默认值,如下所示:

def first_my_model():
    return MyModel.objects.first().pk if MyModel.objects.first() else 0

它试图在此调用中使用新添加的(并且尚未存在于db上)字段,从而抛出错误。