如果没有默认值,则无法添加null = False列

时间:2013-01-28 10:55:27

标签: 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.

鉴于这是一个没有数据的新表,是否有某种方法可以强制进行此迁移?

1 个答案:

答案 0 :(得分:3)

您可以使用以下方式强制迁移:

manage.py migrate --fake django-lean 0005

其中0005是迁移的版本号。在您的情况下最重要的是:

  • 最后拥有正确的数据库架构
  • 让南方认为所有迁移都已经开始

之后,您可以正常运行其他迁移。或者,您可以删除South,使用django-leansyncdb创建最新的表格,然后伪造所有django-lean迁移。

最后,如果您确定迁移有问题,那么值得联系django-lean开发人员。