Django数据库迁移时报错:You are trying to add a non-nullable field ‘pwd‘ to busin without a default

 数据库第一次迁移完成之后,向表中再添加新的字段,生成迁移文件会报错:You are trying to add a non-nullable field 'pwd' to busin without a default; we can't do that (the database needs something to populate existing rows).

 大致意思是:您正在添加一个不为空的字段到某个模型类中,而模型类中没有默认值;我们不能这样做,数据库需要一些东西来填充现有的行

解决方法:

先给字段设置一个默认值或允许为空

eg:pwd = models.CharField(max_length=200,null=True)

生成迁移文件:python manage.py makemigrations

执行迁移文件:python manage.py migrate

然后再把设置的默认值和或允许为空删掉

即:pwd = models.CharField(max_length=200)

执行生成迁移文件:python manage.py makemigrations

再执行迁移文件:python manage.py migrate

ok!

还有一个简单的方法就是删库重来


版权声明:本文为zhangybo原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。