We are finding that after operations that add records to the DB, we
can run the cmd-line sqlite3 utility and see that the DB has been
updated.

However, when we delete records, in the post_delete signal, we've run
iterdump() on the connection handle and seen the records are gone, but
still don't see the records deleted when we use the cmdline tool.

Its possible we are being confused by some other problem, but it looks
almost as if django is using an in-memory proxy DB, and only
periodically syncing it to disk.

Or perhaps a number of changes to the model are being done inside an
explicit sqlite3 transaction, and its not until the transaction closes
that all the changes get written out?

Could this be true?

The sqlite3 devs are pretty insistent that any one line delete should
be wrapped in an auto-transaction and commited to disk immediately,
which seems to point to something we don't understand about django's
ORM and its transaction use.

We care about this because we do database mirroring.

We trap modifications to a number of the important tables, and
snapshot a copy of the ondisk DB to a backup location. We find after
deletes, that the mirrored copy
still has the deleted rows.

Thanks,
Sam

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to