Android sqlite двунаправленная синхронизация sqlite

Мне нужно синхронизировать мою базу данных Android SQLite с моей облачной СУБД и делать это в двунаправленном режиме в многопользовательской среде.

Я нашел и ознакомился с решением здесь, но я хотел бы прочитать о лучшем решении / алгоритме.

Solutions Collecting From Web of "Android sqlite двунаправленная синхронизация sqlite"

Можете ли вы использовать Oracle Database в качестве серверной базы данных?

Если это так, вы должны рассмотреть Oracle Database Lite, который включает полное решение синхронизации, совместимое с SQLite и Android, и было разработано для многопользовательских сред.

Он поддерживает автоматическую синхронизацию, расширенное разрешение конфликтов и несколько моделей синхронизации. Он также поддерживает развертывание и управление приложениями с центральной консоли управления и даже управление устройствами.

Подробнее об этом можно узнать здесь: http://www.oracle.com/technetwork/database/database-lite/overview/index.html

Кроме того, вы можете нажать на вкладку загрузки, чтобы попробовать сами.

Эрик

Я бы рекомендовал отправить файл db на ваш сервер и сделать слияние на стороне сервера. Затем при необходимости отправьте объединенный db обратно клиенту. Ваше решение будет зависеть от алгоритма разрешения конфликтов и схемы базы данных. Но вот пример для простейшего случая:

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

Надеюсь, вы сможете изменить пример двунаправленного слияния.

Другой вариант – использование litesync

Это модификация библиотеки SQLite для реализации синхронизации.

Используя звездную топологию, мы открываем базу данных на сервере в качестве основного узла, используя модифицированный URI, например:

 "file:/path/to/app.db?node=primary&bind=tcp://0.0.0.0:port" 

И на мобильных устройствах мы открываем локальную базу данных, используя:

 "file:/path/to/app.db?node=secondary&connect=tcp://server:port" 

В первый раз, когда приложение открыто в устройстве (и он-лайн), он загрузит новую копию базы данных, и с этого момента мы сможем писать на локальный db, даже когда устройство отключено. Новые транзакции будут синхронизированы, если устройство снова подключится к сети.