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.