2

我正在使用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.

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

4

1 回答 1

4

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

于 2011-01-27T09:52:29.307 回答