gpt4 book ai didi

python - Django:迁移到 NullBooleanField 失败并出现 IntegrityError "contains null values"

转载 作者:太空狗 更新时间:2023-10-30 01:37:58 25 4
gpt4 key购买 nike

我正在使用 Django 1.7 并尝试迁移名为 is_dispensing 的数据库字段来自现有的 BooleanFieldNullBooleanField .

我的迁移文件:

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models, migrations

class Migration(migrations.Migration):

dependencies = [
('frontend', '0007_practice_is_dispensing'),
]

operations = [
migrations.AlterField(
model_name='practice',
name='is_dispensing',
field=models.NullBooleanField(),
preserve_default=True,
),
]

正在运行 manage.py migrate失败并出现此错误:

django.db.utils.IntegrityError: column "is_dispensing" contains null values

我的模型文件中的字段:

is_dispensing = models.NullBooleanField(blank=True)

以前是:

is_dispensing = models.BooleanField(null=True, blank=True) 

当我添加它时,我被要求提供一个默认值,我将其设置为 None。

我发现此消息令人困惑 - 我正在尝试将列类型迁移到 NullBooleanField ,那么为什么它不能包含空值呢?这就是这种列类型的全部意义,不是吗? :)

更新:另一件令人困惑的事情:如果我进入 Postgres 并查看应该包含该列的表,它实际上并没有 is_dispensing。专栏。

最佳答案

项目表中的 slug 和您的应用程序的非唯一组合可能会导致此错误。我通过手动编辑确保我的所有项目 slug 都是唯一的来修复它。

您可以添加 blank = true 外键定义,删除所有迁移并再次运行 migraions...

关于python - Django:迁移到 NullBooleanField 失败并出现 IntegrityError "contains null values",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29392647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com