一个人应该如何从南方失败的移民中恢复过来?

时间:2011-01-27 09:06:23

标签: django database-migration django-south

我正在使用South(版本0.6,Ubuntu Lucid Lynx中打包的版本)来管理Django中的数据库迁移,并且目前使用SQLite作为后端。我遇到了一种情况,我生成了一个迁移以添加一个列:

./manage.py startmigration myapp --auto added_new_column

...产生了看起来合理的迁移。但是,当我然后使用:

应用迁移时
./manage.py migrate myapp

我收到错误,因为我添加的列是非NULL,但我没有指定默认值:

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

如果迁移以这种方式失败,并且您想要返回并重新生成它,应该做什么? (我在实践中所做的,即删除迁移并生成一个新的迁移,已经产生了一些进一步的问题。)也许我错过了关于这个文档的明显内容......

1 个答案:

答案 0 :(得分:4)

在这种情况下,迁移失败并且没有写入db,因此您可以安全地删除旧的并再次创建。您也可以尝试使用较新的南版本,我相信他们在创建步骤时添加了NOT NULL字段的默认检查。