这个问题更多的是架构和库,而不是实现。保持部分离线的sqlite数据库与postgresql同步
我目前在项目中工作,这需要在客户端保持与服务器上的远程数据库同步的本地长期缓存存储(每天更新一次)。对于客户端sqlite已被选为轻量级方法,并且postgresql作为功能丰富的db在服务器。 postgres的本地复制机制是没有选择的,因为我需要保持客户端真正轻量级,并且不依赖像db服务器这样的外部组件。
实现语言是Python。现在我正在查看像SQLAlchemy这样的ORM,但之前没有任何工作。
- SQLAlchemy有没有任何工具可以让sqlite和postgres dbs保持同步?
- 如果没有,是否还有其他Python库有这样的工具?
- 如果任务必须“手工”解决,那么关于架构应该如何应该是什么样的想法?
补充: 这就像遥测,目标客户将只有一天
所以大约20分钟的网络连接,该主要问题是这样一个系统的构建筑
这个问题太广泛了。 – e4c5
附注。如果在桌面上有一个折衷的地方,你可以看看CouchDB作为离线优先数据库(文档虽然不是关系数据库)做广告。或者至少在他们的文档中寻找关于[最终一致性]的想法(http://docs.couchdb.org/en/2.0.0/intro/consistency.html#eventual-consistency)(并可能通过关系数据库实现它)。根据我的经验,它太严格和不方便,但你的里程可能会有所不同。 – saaj
这是单向复制还是双向复制?即客户端上的数据库是只读的?如果它只是更新客户端上的数据库,那么它就简单得多。没有碰撞。如果客户端和服务器都对数据库进行了修改,您是否可以对每个客户端的数据进行分区?我问这个问题的原因是,看看是否有办法避免碰撞,其中2个客户端正在脱机更新同一行,然后同时上传 - 你会如何协调: –