Stuart
Stuart

Reputation: 1241

Django DatabaseError - What is the best way to debug?

I'm having some trouble with a django database (postgresql backend).There was a model (a profile for users) in the project with some boilerplate stuff in it. This has sat in our project for a while, not being used. I actually got round to needing this, so I adjusted the models and created some initial migrations with South. On my dev box I dropped the entire db and syncdb'ed and migrated. This worked fine.

When I've pushed this out to production, I manually removed the old tables in postgresql and syncdb'ed and migrated. However, in my admin interface a DatabaseError is raised as some function is looking for a field on the old model. I've even dropped the entire postgresql database and syncdb'ed / migrated again and this still happens. The offendinging field is called gender (not one that I created). The migration works, and the database structure reflects my models, but for some reason the admin interface wants to find this (non-existant) gender field. This is the error:

DatabaseError: column user_profiles.gender does not exist LINE 1: ... "user_profiles"."id", "user_profiles"."user_id", "user_prof...

I understand this seems to be quite site specific, but perhaps I could get some pointers on how to debug this?

Thanks

Upvotes: 0

Views: 149

Answers (1)

guettli
guettli

Reputation: 27969

If I understand your problem, your current code should not contain a reference to "gender" any more, since the old code was removed. Try to find a source file which still contains it:

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

Or there is a pyc file, but the py file was removed. But Python still loads the pyc file....

If this does not help, please post the ascii traceback.

Upvotes: 1

Related Questions