【问题标题】:Auto sync data between couch and mysql沙发和mysql之间自动同步数据
【发布时间】:2018-05-07 07:34:13
【问题描述】:

我需要为已经用 apache、mysql 和 php 开发的 web 应用程序开发离线应用程序。我刚刚发现我们可以使用 couch 和 pouch db 开发离线应用程序。

但我认为我需要将数据从 mysql 自动同步到沙发数据库(以及沙发到 mysql)。据我了解,我可以编写 php 代码来从 mysql 读取数据并将数据放入 couch db (也可以使用 couchdb 到 mysql )。但我不确定我们如何保持沙发数据库和 mysql 数据的更新。 (我的意思是在一端发生更改时自动同步数据)。

任何人都可以向我推荐工具或任何东西来找出自动同步数据的方法吗?

【问题讨论】:

    标签: php mysql couchdb offlineapps


    【解决方案1】:

    这种同步没有通用的解决方案。您应该为此编写自己的代码。

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

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

    在 CouchDB 中,您可以使用 _changes 端点监听文档更改,并通过将每个更改转换为 DML 操作将其传输到 MySQL。

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

    【讨论】:

    • 谢谢胡安乔!我理解你的观点。我刚刚找到一个 npm 包来触发沙发数据库更改 (npmjs.com/package/couchdb-to-mysql)。所以我可以调用我的 put api 来进行有关更改的 mysql 更改。但是我正在努力使用可以运行 api 以将更改复制到沙发数据库的 mysql 触发器。希望你能理解我的问题
    • 我看到了您的问题,但我认为没有通用的方法来解决它。关系数据库中的数据变化检测机制是一个有其自身难点的问题。或许这个项目可以帮你画出一个解决方案debezium.io/docs/connectors/mysql
    • 感谢您对胡安乔的帮助!!我阅读了您提供的解决方案,它可能会在其他时候帮助我。但是现在我正在更改代码以将数据直接保存到沙发数据库。那么我当前的项目不需要这种同步。再次感谢您。
    猜你喜欢
    • 2022-11-29
    • 2017-04-03
    • 1970-01-01
    • 1970-01-01
    • 2016-10-21
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    • 2011-12-04
    相关资源
    最近更新 更多