Python 如果没有默认值,则不能添加null=False列

Python 如果没有默认值,则不能添加null=False列,python,django,django-south,Python,Django,Django South,我正在添加一个新应用程序,在使用South设置数据库时,我得到以下信息: ... line 11, in forwards db.add_column('experiments_dailyreport', 'test_group_size', orm['experiments.dailyreport:test_group_size']) You cannot add a null=False column without a default value. 鉴于这是一个没有数据的新表,是

我正在添加一个新应用程序,在使用South设置数据库时,我得到以下信息:

... line 11, in forwards
db.add_column('experiments_dailyreport', 'test_group_size', 
  orm['experiments.dailyreport:test_group_size'])

You cannot add a null=False column without a default value.

鉴于这是一个没有数据的新表,是否有办法强制迁移?

您可以使用以下命令强制迁移:

manage.py migrate --fake django-lean 0005
其中
0005
是迁移的版本号。在您的情况下,最重要的是:

  • 最终拥有正确的数据库模式
  • 让南方认为所有的迁移都已经完成了
之后,您可以正常运行其他迁移。或者,您可以删除South,使用
syncdb
django-lean
创建最新的表,然后伪造所有
django-lean
迁移


最后,如果你确定迁移有问题,就值得联系<代码> Django Leave>代码>开发人员(S)。在迁移时,你可以提供一个默认的空值,这是一个你可以考虑的选项吗?@ SAMuuLeaTimuZuo我可以这样做,如果我正在设置迁移,但是我不是,我正在安装刚下载的软件包。应用程序的名称是什么?github上可能已经有了修复程序,或者它们所在的位置。@SimeonVisser

django lean
,我正在运行安装的版本
pip
,我找不到任何更新的版本。