Hi Ian,

I've spent some time looking at available options, and I think I can
solve my own issues without using UUIDs at all.

I really wanted to continue to use integer IDs, partly because in some
cases these fields are exposed to my users as order/document/transaction
IDs. I also wanted to stay as close to web2py's default way of working,
and use the database platform's own continuous replication, rather than
doing it in a batch.

Using Postgres, the ID fields are are populated by a generator, and
changing the generator DDL to prevent clashing IDs should work for me,
as there will only ever be a small number of instances of the database.

It's actually very easy to do - you can interleave the values, so if you
had two instances of the database, you could have one issue odd nos. and
the other even: -

Instance 1: -

        START WITH 1 INCREMENT BY 2

Instance 3: -

        START WITH 2 INCREMENT BY 2

Alternatively, you could assign a range to each instance: -

Instance 1: -

        START WITH 1 INCREMENT BY 1
        MAXVALUE 99999999

Instance 2

        START WITH 100000000 INCREMENT BY 1
        MAXVALUE 199999999

I don't know how useful this will be to you if you are using SQLite, but
you may find that Postgres is a more robust platform for replication, so
it could worth looking into in any event.


-- 

Regards,

PhilK


'a bell is a cup...until it is struck'

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to