Resolving Django dumpdata errors
13 September 2009
Recently I recieved this wonderful piece of news when I ran
./manage.py dumpdata for the first time:
Error: Unable to serialize database: User matching query does not exist.
I knew this might not work out since I was dealing with a legacy database, but the resolution is quite simple. First I had to narrow it down to which app was causing this. Naturally I assumed it was one of the two apps I had, either
restaurant. So I ran:
./manage.py dumpdata common and
./manage.py dumpdata restaurant. The latter had no problem whatsoever.
This made sense, since my
common application was the only one that made any reference to a
User. By looking in my
models.py for that application, I narrowed it down to my
Profile object. Sure enough, commenting it out meant I could get my data.
It ended up being a foreign key mismatch between the
Read full post
user tables. Since this is legacy data, this mismatch made sense. A simple
SELECT id,userid FROM profile WHERE userid NOT IN (SELECT id FROM auth_user) gave me a list of bad profiles. Removing them allowed me to create my Django fixtures.