从 Odoo 8 开始,访问另一个数据库中 OpenERP 对象的数据

Posted

技术标签:

【中文标题】从 Odoo 8 开始,访问另一个数据库中 OpenERP 对象的数据【英文标题】:From Odoo 8, access to data of an OpenERP object in another database 【发布时间】:2016-10-21 15:49:17 【问题描述】:

我们有一个 OpenERP 7 实例,我正在使用一个 Odoo 8 实例。这两个实例分别工作,但我想做一个 Odoo 模块,以便能够连接到 OpenERP 中的特定表/对象并在需要时检索数据。这就像一个迁移,但它不是唯一一次必须执行的,因此,它必须是一个可执行代码。

有可能吗?你能给我一个关于解决方案的示例代码吗?

【问题讨论】:

【参考方案1】:

如果您熟悉 sql,您可以在单独的游标对象上创建到数据库的连接并执行查询。可以使用python库psycopg2

有一些 odoo 客户端库,例如 erppeek,可用于通过 python 环境与 odoo 交互。所以它可能是理想的。您可以通过创建 erppeek 客户端对象来创建与其他 OpenERP 实例的连接,然后您可以使用与本机 odoo 非常相似的语法来查询数据库。这是一个例子。

import erppeek
import logging

_logger = logging.getLogger(__name__)

password = "your_password"
server = "http://localhost:8069"
user = "your_user"
db = "your_db"

Client = erppeek.Client(server,db,user,password)
if Client:
    Client.login(user,password)
    partners = Client.browse([])
    for partner in partners:
        _logger.info("FOUND PARTNER: ".format(partner.name))

现在您可以访问这些记录,并且可以在您的 odoo 实例上对它们做任何您想做的事情。

还有 erppeek 库中使用的 xmlrpc。 xmlrpc/jsonrpc 的文档可以在 Odoo 的网站上找到。

【讨论】:

以上是关于从 Odoo 8 开始,访问另一个数据库中 OpenERP 对象的数据的主要内容,如果未能解决你的问题,请参考以下文章

如果第一个 JSON 参数不是“params”,如何从 Odoo 中的 Webhook 访问数据?

将 odoo 8 升级到 odoo 9 时遇到问题

使用ubuntu server18.04 搭建odoo12运行环境

在Odoo中更新上下文8

ODOO从哪里开始??OpenERP的线头儿

如何使用 Odoo 中的 ORM 连接到 PostgreSQL 中的另一个不同数据库?