0

Question missing from question_revision table!

I don't know how it could have gotten in this state, but I have 3 questions in my database that do not have an entry in the question_revision table.

The questions display fine, but whenever I try to edit the question, I get an exception in query.py in __getitem__

Note that the ID in the table are sequential. There is no hole...

A few questions:

  • Any idea why this happened?
  • Easy way to fix?
  • Should there be code to catch an empty revision? (I would think not...This is a DB issue)
Evgeny's avatar
13.2k
Evgeny
updated 2010-11-10 11:53:51 -0500
Benoit's avatar
875
Benoit
asked 2010-10-29 15:34:09 -0500
edit flag offensive 0 remove flag close merge delete

Comments

add a comment see more comments

1 Answer

0

Something muste be out of hand. I've seen this problem on an installation where the program was trowing an exception between the time question is saved and the revision is intended to be saved.

The exception was SMTPError, but in your case it could be something else, like for example some people missing EmailFeedSetting values for those accounts that you have created programmatically.

There are management commands that "bandaid" that and related issues, but to really fix this we need to find what throws the exception and why.

python manage.py fix_revisionless_posts #will create an initial revision
python manage.py fix_answer_counts #fixes incorrect answer counts

You can also try postgres and the database backend. With postgres django will run every request in its own transaction and will help prevent situations where data becomes corrupted by rolling back transactions that had an uncaught exception. (With postgres you'll also get relevancy ranking on full text search and automatically "and"ed search. In mysql search is "od"ed and is not very specific). In MySQL at the moment you have to choose between support of transactions and the full text search capability.

Evgeny's avatar
13.2k
Evgeny
updated 2010-10-29 15:48:59 -0500, answered 2010-10-29 15:41:33 -0500
edit flag offensive 0 remove flag delete link

Comments

the fix_revisionless_posts will make revision pages display fine, but the problem will probably re-appear when you try to edit that post until you fix the problem of missing email subscription settings.
Evgeny's avatar Evgeny (2010-10-29 15:50:51 -0500) edit
That worked. While postgres sounds interesting, I'm not sure about migrating my data. That's something I'll have to investigate *sigh*
Benoit's avatar Benoit (2010-10-29 16:29:52 -0500) edit
I'll migrate the data here and write up on this. Supposedly all you need to do is to delete table creation SQL from the MySQL dump and replace "" with \", but still need to try here.
Evgeny's avatar Evgeny (2010-10-29 17:02:49 -0500) edit
add a comment see more comments