android sqlite双向同步sqlite

我需要将我的Android SQLite数据库与我的云服务器数据库同步,并在多用户环境中以双向的方式进行操作。

我已经在这里find并介绍了解决scheme,但我想了解一个更好的解决scheme/algorithm。

Related of "android sqlite双向同步sqlite"

你可以使用Oracle数据库作为你的服务器端数据库吗?

如果是这样的话,您应该考虑Oracle数据库精简版,其中包括一个与SQLite和Android兼容的完全同步解决scheme,并且是为多用户环境devise的。

它支持自动同步,高级冲突解决scheme和多个同步模型。 它还支持从中央pipe理控制台部署和pipe理应用程序,甚至设备pipe理。

您可以在这里阅读更多信息: http : //www.oracle.com/technetwork/database/database-lite/overview/index.html

另外,你可以点击下载标签自己尝试一下。

埃里克

我build议将db文件发送到您的服务器,并在服务器端合并。 然后发送合并数据库返回到客户端,如果需要的话。 您的解决scheme将根据冲突解决algorithm和数据库架构而有所不同。 但是这里是最简单的例子:

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

希望你能够修改双向合并的例子。

另一种select是使用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" 

第一次在设备(和在线)中打开应用程序时,它将下载数据库的全新副本,并且从这一点开始,即使设备离线,我们也可以写入本地数据库。 当设备再次上线时,新的交易将被同步。