我有一份django 1.6.5的申请。我有一个模型,删除一个字段,添加另一个字段,然后升级第三个字段。当我们现在转到管理面板中的模型时,我会得到一条消息:

ProgrammingError at /admin/app/subscription/
column app_subscription.enabled does not exist

命令python manage.py syncdb不起作用。

最佳答案

如果您不明确要求,django(希望)不会修改您的数据库模式。syncdb命令工作得很好,但是(如文档化的)它只会创建尚未存在的表(并且在您的models中没有被标记为外部管理)。
所以你有三个选择:
手动放下您的表并重新运行syncdb。这意味着你会泄露我们所有的数据,所以这不是一个“解决方案”
手动更改数据库架构。你不会丢失你的数据,但是你必须在你的应用部署的任何地方重复同样的(手动)操作…如果它只安装在本地工作站上可能是可以的,否则它不是一个可靠的专业生产级选项。
使用South(这似乎是安装的,因为您确实有一个migrate命令可用。
请注意,解决方案3意味着您确实为应用程序创建了迁移文件,如本文所述:http://south.readthedocs.org/en/latest/tutorial/part1.html#the-first-migration

10-04 22:12