Django 如何从南部失败的移民中恢复?

Django 如何从南部失败的移民中恢复?,django,database-migration,django-south,Django,Database Migration,Django South,我在Django中使用(0.6版,Ubuntu Lucid Lynx中打包的版本)管理数据库迁移,目前使用SQLite作为后端。我遇到了一种情况,我生成了一个迁移以添加一个列,其中包含: ./manage.py startmigration myapp --auto added_new_column 。。。这产生了一个看起来合理的迁移。但是,当我随后应用迁移时: ./manage.py migrate myapp 我得到一个错误,因为我要添加的列是非空的,但我没有指定默认值: ValueEr

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

./manage.py startmigration myapp --auto added_new_column
。。。这产生了一个看起来合理的迁移。但是,当我随后应用迁移时:

./manage.py migrate myapp
我得到一个错误,因为我要添加的列是非空的,但我没有指定默认值:

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

如果迁移以这种方式失败,并且您希望返回并重新生成它,您应该怎么做?(我在实践中所做的,即删除迁移并生成一个新的迁移,已经产生了一些进一步的问题。)也许我在文档中遗漏了一些关于这方面的明显信息…

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

您可以使用
migrate app--list
查看您正在使用的迁移坦克-我认为
startmigration myapp--auto
已经影响了数据库,但我想这实际上是由我尝试的后续步骤完成的。