android sqlite bidirectional synchronization sqlite

I need to sync my Android SQLite DB with my cloud-server DB, and doing it in a bi-directional way in a multiuser environment.

I have found and introduction to the solution here but I would like to read about a better solution/algorithm.


Can you use Oracle Database as your server-side DB?

If so, you should consider Oracle Database Lite, which includes a full synchronization solution that is compatible with SQLite and Android, and was designed for multi-user environments.

It supports automatic synchronization, advanced conflict resolution, and multiple sync models. It also supports deploying and managing apps from a central management console, and even device management.

You can read more about it here: http://www.oracle.com/technetwork/database/database-lite/overview/index.html

Also, you can click on the download tab to try it out for yourself.

Eric


I'd recommend to send db file to your server and do merging on the server side. Then send merged db back to the client if needed. Your solution will vary based on conflict resolve algorithm and your database schema. But here is example for the simplest case:

sqlite> attach 'client.db3' as ClientDBtoMerge;           
sqlite> insert into TableName select * from ClientDBtoMerge.TableName;
sqlite> detach database ClientDBtoMerge; 

Hope you are be able to modify example for bi-directional merge.