On Thu, 14 Aug 2008 16:41:57 +0200, Thomas Guettler <[EMAIL PROTECTED]> wrote:
auto increment:
Here's one way
class Sequence(Persistence):
def __init__(self):
self.current = 0
def next(self):
self.current += 1
return self.current
ticketSequence = Sequence()
class Ticket(Persistence):
def __init__(self):
self.id = ticketSequence.next()
I am sorry, but this does not work if several threads or processes
try to get a new id.
Have a look at:
http://www.zope.org/Documentation/Books/ZDG/current/Persistence.stx
"Resolving Conflicts".
BTW, that's one of the points why I switched from ZODB to Postgres.
I'm not sure why you say it doesn't work and then link to the documentation
which both explains why it works and how to handle the cases where a
conflict might cause it to sometimes not work (retry or manually resolve).
PostgreSQL is great and makes sequences easier than ZODB does (at least
as far as I can tell), but it's hardly _impossible_ to have a working
sequence in ZODB, and it's not even difficult, it's just not trivial.
Jean-Paul
--
http://mail.python.org/mailman/listinfo/python-list