将Postgres服务器数据库同步到Sqlite客户端数据库

时间:2013-08-09 16:23:18

标签: sqlite postgresql

我正在尝试创建一个从服务器接收Sqlite数据库的应用程序,以供离线使用但云同步。服务器有一个postgres数据库,其中包含来自许多客户的信息。

1)最好删除sql数据库并从查询中创建一个新数据库,或尝试同步和更新现有的单独sqlite文件(或其他更好的解决方案)。每位客户每天刷新几次。

2)如果是后者,你能否告诉我如何做到这一点的资源?

我对数据库应用程序很陌生,所以请原谅我的无知,如果有任何方法可以澄清,请告诉我。

2 个答案:

答案 0 :(得分:3)

这里没有一种适合所有方法。在构建解决方案之前,您需要仔细考虑确切需要完成的工作,复制的内容,涉及的数据量以及编写的模型。在此过程中,您必须决定如何处理写冲突等等。

一般来说,我要说的一点是,这种同步最好只用于附加写入模型(即插入,不删除,不更新),一种方法是记录需要进行的更改和复制这些变化。

但是,在最好的日子里,使用最好的工具,主 - 主复制很困难。在具有不同功能的数据库之间跳转会引入许多其他问题。你是一个很大的工作。

答案 1 :(得分:1)

这是一个开源产品,声称可以解决许多数据库类型,包括Postgres。我对这家公司没有任何从属关系或商业利益。

如果您能够并且愿意走出关系数据库以使用对象存储,您可能需要查看使用基于MVCC的复制协议的CouchDbPouchDbmulti-master replication包括解决冲突。在封面下,PouchDb使用适用于Sqlite,IndexDb,本地存储或远程CouchBb实例的适配器来持久保存客户端数据。它会自动为给定的桌面或移动浏览器选择最佳的客户端存储选项。 Sqlite引擎可以是WebSQL或Cordova Sqlite插件。