Django DatabaseError - 调试的最佳方法是什么?

问题描述:

我在使用django数据库(postgresql后端)时遇到了一些麻烦。在项目中有一个模型(用户配置文件),其中包含一些样板文件。这已经在我们的项目中有一段时间了,没有被使用。我真的需要这个,所以我调整了模型,并与South创建了一些初始迁移。在我的开发盒上,我放下了整个数据库并进行了syncdb'ed和迁移。这工作得很好。Django DatabaseError - 调试的最佳方法是什么?

当我推出这个产品时,我手动删除了postgresql中的旧表,并且syncdb'ed和迁移。但是,在我的管理界面中,由于某些函数正在旧模型中寻找一个字段,所以会引发DatabaseError。我甚至放弃了整个postgresql数据库并重新syncdb'ed/migrated,这仍然发生。犯罪领域被称为性别(不是我创建的)。迁移工作,数据库结构反映了我的模型,但由于某种原因,管理界面想要找到这个(不存在的)性别字段。这是错误:

DatabaseError:列user_profiles.gender不存在LINE 1:。... “user_profiles”, “ID”, “user_profiles” “USER_ID”,“user_prof ...

我明白这一点似乎是相当现场具体,但也许我能得到如何调试这一些指针?

感谢

如果我理解你的问题,你当前的代码不应该包含对“性别”的任何更多,因为旧的代码已被删除。尝试找到一个仍然包含它的源文件:

find your-dir -name '*.py'|xargs grep gender 

或者有一个pyc文件,但py文件已被删除。但Python仍然加载pyc文件....

如果这没有帮助,请张贴ascii回溯。

+0

谢谢,这种方法帮了很大忙。事实证明,埋在一个未使用过的图书馆中的某个地方是一个同名的模块,并且有一个旧的导入语句,我忘记了它(总是最简单的错误诶!)。因此,即使我迁移了我的模型,管理视图也试图为旧模型查找数据库表。排序。 – Stuart