wiki:BluePrint/Synchronisation

Version 5 (modified by Fran Boon, 16 years ago) ( diff )

--

This page hosts the detailed specification for the Blueprint for the Synchronisation.

We need to be able to support synchronising data between instances:

In S2 this is done by record ids being UUIDs (Universally Unique IDs) built from each instance's 'base_uuid'

There is a sync_instance table:

CREATE TABLE sync_instance (
    base_uuid VARCHAR(4) NOT NULL, -- Instance id
    owner VARCHAR(100), -- Instance owner's name
    contact TEXT, -- Contact details of the instance owner
    url VARCHAR(100) DEFAULT NULL, -- Server url if exists
    last_update TIMESTAMP NOT NULL, -- Last Time sync with the instance
    sync_count INT DEFAULT 0, -- Number of times synchronized
    PRIMARY KEY(base_uuid)
);

Web2Py users have tried to solve the same issue:

Inc through UUIDs:

import uuid
SQLField('uuid',default=str(uuid.uuid4())) 

There is a simple 1-table example appliance which has the ability to do syncs via XML-RPC:

We can use CSV to do database synchronization:

Note: See TracWiki for help on using the wiki.