如何从Odoo实例URL获取数据库链接 解决数据库不存在报错问题
Odoo SH实例数据库连接获取与报错解决
正确提取数据库名称的方法
Odoo SH的实例数据库名与实例域名严格绑定,规则如下:
- 取实例URL中
odoo.com之前的前缀部分 - 将前缀中所有的
.替换为_,就是当前环境的数据库名
你提供的dev实例URL为https://thiscotime-thisco-erp-odoo-dev-3132464.dev.odoo.com/web#cids=1&home=,对应前缀是thiscotime-thisco-erp-odoo-dev-3132464.dev,因此正确的数据库名为thiscotime_thisco_erp_odoo_dev_3132464_dev
报错原因说明
你收到的报错如下:
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: FATAL: database "thiscotime-thisco-erp-testing-3132300.dev" does not exist
问题出在两点:
- 你用了testing环境的数据库名连接dev环境的实例,两个环境的数据库相互独立,名称完全不同,自然找不到对应数据库
- 数据库名没有按照规则把
.替换为_,也会导致识别失败
正确操作指引
- 如果你要直接操作数据库:进入对应环境的Odoo SH后台,打开内置Shell终端,直接输入
psql命令即可自动连接当前实例的数据库,无需手动配置参数 - 如果你要在代码中连接:代码需要部署在对应Odoo SH实例的环境内运行,数据库名填写按上述规则提取的正确名称即可
- 外部环境不支持直接连接Odoo SH的底层PostgreSQL数据库,有跨环境调用需求请使用Odoo自带的RPC接口
内容的提问来源于stack exchange,提问作者wahyu eko hadi saputro
相关产品推荐
相关产品推荐

