自动同步Couch和MySQL之间的数据

6

我需要为已经使用Apache、MySQL和PHP开发的Web应用程序开发离线应用程序。我刚刚发现我们可以使用Couch和Pouch DB开发离线应用。

但问题是,我需要自动将数据从MySQL同步到Couch DB(以及从Couch同步到MySQL)。我理解可以编写PHP代码从MySQL读取数据并将数据放入Couch DB(以及从CouchDB到MySQL)。但我不确定如何保持Couch DB和MySQL数据的更新(即在一端发生更改时自动同步数据)。

有人能建议我工具或其他方法来找出自动同步数据的方式吗?

1个回答

2

对于这种类型的同步,没有通用的解决方案。您应该编写自己的代码来完成此任务。

您应该编写一个映射机制,将您的关系数据模型转换为文档,反之亦然。

从MySQL中,您需要使用更改检测机制来确定在每个同步周期后应传输到CouchDB的数据(例如使用时间戳作为检查点),将数据转换为JSON文档,然后将其保存/合并到CouchDB内容中。

从CouchDB中,您可以使用_changes端点监听文档变化,并将每个变化转换为DML操作,然后将其传输到MySQL。

所有这些都取决于您的用例,编写通用的集成机制可能会很困难。


谢谢Juanjo!我理解你的观点。我刚刚找到了一个npm包来触发couch db更改(https://www.npmjs.com/package/couchdb-to-mysql)。因此,我可以调用我的put api来处理与更改相关的mysql更改。但是,我正在努力解决mysql触发器的问题,这些触发器可以运行api以将更改复制到couch db。希望你能理解我的问题。 - Pushpa
1
我看到了你的问题,但我认为没有一种通用的方法来解决它。关系数据库中的数据更改检测机制是一个具有自己困难的问题。也许这个项目可以帮助你找到解决方案http://debezium.io/docs/connectors/mysql/ - Juanjo Rodriguez
谢谢你的帮助Juanjo!! 我看了你提供的解决方案,它可能在其他时候对我有所帮助。但现在我正在更改代码,直接将数据保存到couch db中。然后我就不需要为我的当前项目进行同步了。再次感谢你。 - Pushpa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接