问答详情
源自:3-3 创建博客文章模型

修改了Article的model后,怎么更新到数据库

第一次建model时,漏了最后的括号:

title = models.TextField()

加上后出现错误:

OperationalError at /admin/blog/article/

no such column: blog_article.title

重新添加括号后,尝试    python manage.py makemigrations  但是出现如下问题:

You are trying to add a non-nullable field 'title' to article without a default; we can't do that (the database needs something to populate existing rows).

Please select a fix:

 1) Provide a one-off default now (will be set on all existing rows with a null value for this column)

 2) Quit, and let me add a default in models.py

此时选择1)也没有解决,应该怎么解决?

提问者:提拉米糖 2019-05-29 14:51

个回答

  • 提拉米糖
    2019-05-29 15:00:13

    解决了:在该修改后模型后,第二次同步数据库时title字段不能为空。如果第一次就创建title字段,则无影响,因为该表没有现有的行。如果数据表第一次已经创建并且已经在表插入数据,则必须定义一个默认值来填充已有的行, 否则数据库会因为违反数据的完整性而不接受数据表更改。