Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

Эрик

Ответ 2

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

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

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

Ответ 3

Другой вариант - litesync

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

Используя звездообразную топологию, мы открываем базу данных на сервере в качестве первичного node с использованием модифицированного 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"

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