我的Django应用中有一个模型,需要添加一个新的BooleanField
列。此列永远不应为null - 相反,我希望所有现有条目都将此字段设置为False
。
我该怎么做?如果我只是添加新字段并设置default = False
,则会导致OperationalError: no such column
错误。
答案 0 :(得分:2)
您需要使用Django's migrations,这样您就可以将该字段添加到数据库中。
简而言之,您对模型进行了更改,使用manage.py makemigrations
创建了迁移,然后使用manage.py migrate
运行。
答案 1 :(得分:0)
在添加新列后,您需要迁移数据库。就像在第一次创建数据库时使用syncdb命令执行“create table”命令一样,迁移会将“alter table”更改写入数据库。
答案 2 :(得分:0)
事实证明我错过了migrate命令需要应用名称。所以,我必须像这样运行命令:
manage.py makemigrations app_name
答案 3 :(得分:-1)
默认情况下,BooleanField
列为False,您无需指定任何内容。只需运行python manage.py migrate
。它应该工作。