【问题标题】:Mongodb and Odoo database Using Odoo APIMongodb 和 Odoo 数据库使用 Odoo API
【发布时间】:2019-01-06 12:17:43
【问题描述】:

我有一个通过 Odoo API 与 Odoo 数据库集成的应用程序。我的应用程序有 Mongodb 数据库。基本上,我们调用 Odoo API 从 Odoo 获取员工,向员工对象添加一些字段并将其存储在我们的 monogodb 数据库中。我的问题是如果两方之一编辑员工详细信息,如何保持我们的数据库和 Odoo 数据库之间的同步? cron 作业是个好主意,所以我可以每 10 秒左右调用一次 Odoo API 并检查是否有任何更改并更新我的数据库?

【问题讨论】:

  • Odoo 通常使用 PostgreSQL 作为其数据库引擎,后者有一个名为 Write Ahead Log 的特性,简称 WAL。也许您可以阅读它,过滤您感兴趣的操作并将它们复制到 MongoDB 数据库中。

标签: mongodb odoo


【解决方案1】:

带有自定义模块。

您可以覆盖 odoo 的官方 ORM 方法并管理对 mongodb 的调用

与 RPC-Services 一样,您可以从 mongodb 更新或创建或删除到 odoo。

SnippetBucket.com 为食品订购系统的 GPS 跟踪系统做了类似的解决方案。

【讨论】:

    【解决方案2】:

    还有另一种没有 cron 作业的方法,您可以使用 odoo 中的“create”、“write”和“unlink”方法覆盖,同样认为在“create”、“write”时您必须在应用程序端执行此操作或“取消链接”然后调用 odoo api。

    在上述情况下,我认为您必须在创建新记录时传递一个标志,例如在 odoo 应用程序中创建此记录以及从您的应用程序中创建此记录。很容易识别。因为递归创建我们必须停止这就是传递这个标志的原因。

    谢谢

    【讨论】:

    • 非常感谢。我们放弃了整个集成,我们现在的方法是从 Odoo 获取数据,然后从我们端管理它们。
    【解决方案3】:

    您可以使用“服务器操作”并在记录更新(写入)、创建(创建)或删除(取消链接)时应用,您只需对这些函数进行重载,添加对服务器操作的调用即可。

    【讨论】:

      【解决方案4】:

      您可以覆盖odoo函数:例如create(“创建新记录时使用”),write(“更新时”)和unlink(“删除时”)

       @api.model
          def create(self, values):
              """Override default Odoo create function and extend."""
              # Do your custom logic here
      

      【讨论】:

      • 这不能保证同步。假设您在 odoo 中创建/写入记录时无法达到目标?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-20
      • 2016-01-25
      • 1970-01-01
      • 2021-02-04
      • 2021-06-01
      • 1970-01-01
      • 2021-08-28
      相关资源
      最近更新 更多