ok, thanks a lot. savepoints saved my day :p It just worked out of the box while the other methods didn't seem to work.
Back on a more serious topic, could someone confirm or not that the transaction rollback (http://docs.djangoproject.com/en/1.2/topics/db/transactions/#transaction-rollback) doesn't need extra setting ? This part doesn't say it requires an explicit transaction management, so I'd like to know whether the documentation would benefit a minor update or if it's a bug due to multi database. Xavier. Le 1 févr. 2011 à 20:15, Xavier Ordoquy a écrit : > thanks, > > I'll give it a try tomorrow and let you know. > > Xavier. > > Le 1 févr. 2011 à 19:57, Casey S. Greene a écrit : > >> Also (sorry for the follow-up spam but I just remembered this) if you are >> hoping to use the database level autocommit (postgres 8.2 or later), you >> need to configure it: >> >> Autocommit mode >> New in Django 1.1: Please, see the release notes >> >> If your application is particularly read-heavy and doesn’t make many >> database writes, the overhead of a constantly open transaction can sometimes >> be noticeable. For those situations, if you’re using the postgresql_psycopg2 >> backend, you can configure Django to use “autocommit” behavior for the >> connection, meaning that each database operation will normally be in its own >> transaction, rather than having the transaction extend over multiple >> operations. In this case, you can still manually start a transaction if >> you’re doing something that requires consistency across multiple database >> operations. The autocommit behavior is enabled by setting the autocommit key >> in the OPTIONS part of your database configuration in DATABASES: >> >> 'OPTIONS': { >> 'autocommit': True, >> } >> >> from >> http://docs.djangoproject.com/en/1.2/ref/databases/ >> -- >> Casey >> >> On 02/01/2011 01:52 PM, Casey S. Greene wrote: >>> Here is some code pulled from my (using postgres) django application >>> that recovers fine. Perhaps this is helpful to you. I am storing the >>> non-unique values and dealing with them later (pulling from an external >>> source that is supposed to have unique IDs assigned but they don't >>> always pan out somehow...). >>> >>> from django.db import IntegrityError, transaction >>> >>> #Other Code >>> ... >>> #relevant code >>> try: >>> sid = transaction.savepoint() >>> foo = FooModel(fooarg=fooarg, ...) >>> foo.save() >>> except IntegrityError: >>> transaction.savepoint_rollback(sid) >>> non_unique_foo.append((FooDB, FooID)) >>> >>> Hope this helps! >>> Casey >>> >>> On 02/01/2011 11:48 AM, Xavier Ordoquy wrote: >>>> >>>> Le 1 févr. 2011 à 15:59, bruno desthuilliers wrote : >>>>> On 1 fév, 15:24, Xavier Ordoquy<xordo...@linovia.com> wrote: >>>>>> Hi all, >>>>>> >>>>>> I got a project which sometime outputs database integrity errors >>>>>> (key violates unique constraint). >>>>>> It is fine since I'm keeping an events table which may have several >>>>>> creation messages for the same object. >>>>> >>>>> Hmmm... Either I misunderstood you or you have a design problem here. >>>> >>>> You probably miss the big picture (ie, several legacy databases, each >>>> with their own models plus synchronization between them and a central >>>> django database). >>>> >>>>> But anyway: >>>>> >>>>>> Until now, I was just catching the exception and forgot about it. >>>>>> >>>>>> Today, I'm not sure this is the right way. >>>>>> If the exception in itself is correctly processed, I noticed that >>>>>> any database operation behind raises another exception saying that >>>>>> postgresql hates me and won't perform any other operation (current >>>>>> transation is aborted, commands ignored until end of transaction >>>>>> block.). >>>>> >>>>>> I already tried to end the transaction, but django will let me know >>>>>> I'm not within a transaction.... >>>>> >>>>> Hu ? >>>>> >>>>> I assume you did read this: >>>>> http://docs.djangoproject.com/en/dev/topics/db/transactions >>>>> >>>>> and specially this part: >>>>> http://docs.djangoproject.com/en/dev/topics/db/transactions/#handling-exceptions-within-postgresql-transactions >>>>> >>>> >>>> Actually, I posted because this just doesn't seem to work. >>>> If I try to rollback the transaction, I just get a nice error that >>>> I'not within a transaction. >>>> >>>> I haven't tested savepoints, but transaction rollback and autocommit >>>> doesn't seem to work here. >>>> I'll probably write a sample project this week to point the issue. >>>> >>>> Regards, >>>> Xavier. >>>> >> >> -- >> 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. >> > > -- > 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. > -- 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.