odoo 12 psycopg2.OperationalError:无法将主机名“ db”转换为地址

时间:2019-09-16 05:55:38

标签: odoo odoo-12

受影响的版本:

odoo 12,PostgreSQL 10

复制步骤:

docker容器 odoo容器已经工作了好几个月,但是在尝试升级odoo版本之后。 我收到以下错误。

  
    

psycopg2.OperationalError:无法将主机名“ db”转换为地址

  
  • PostgreSQL容器端口:5432
  • [odoo和Postgresql]两个容器都加入了同一网络

当前行为:

内部服务器错误 服务器遇到内部错误,无法完成您的请求。服务器过载或应用程序错误。

日志:

  

文件“ /usr/lib/python3/dist-packages/odoo/sql_db.py”,第171行,位于 init 中,self._cnx = pool.borrow(dsn),文件“ / usr / lib / python3 / dist-packages / odoo / sql_db.py”,第540行,在_locked中,返回fun(self,* args,** kwargs),文件“ / usr / lib / python3 / dist-packages / odoo” /sql_db.py”,第608行,位于row,** connection_info)中,文件“ /usr/lib/python3/dist-packages/psycopg2/init.py”,第130行,位于connect中, conn = _connect(dsn,connection_factory = connection_factory,** kwasync),psycopg2.OperationalError:无法将主机名“ db”转换为地址:名称或服务未知---,2019-09-15 15:01:26,057 1 INFO? odoo.service.server:启动关机,2019-09-15 15:01:26,058 1 INFO吗? odoo.service.server:再次按CTRL-C或发送第二个信号以强制关闭。 ,2019-09-15 15:01:30,959 1个信息? odoo:Odoo版本12.0-20190816,2019-09-15 15:01:30,960 1 INFO吗? odoo:使用/etc/odoo/odoo.conf上的配置文件,2019-09-15 15:01:30,960 1 INFO吗? odoo:插件路径:['/var/lib/odoo/addons/12.0','/ mnt / extra-addons','/ usr / lib / python3 / dist-packages / odoo / addons'],2019-09- 15 15:01:30,961 1信息? odoo:数据库:odoo @ db:5432,2019-09-15 15:01:31,104 1 INFO吗? odoo.addons.base.models.ir_actions_report:将在/ usr / local / bin / wkhtmltopdf使用Wkhtmltopdf二进制文件,2019-09-15 15:01:31,265 1 INFO吗? odoo.service.server:在574638c2fd44:8069,2019-09-15 15:01:40,043 1上运行的HTTP服务(werkzeug) odoo.http:HTTP配置静态文件,2019-09-15 15:01:40,072 1 INFO? odoo.sql_db:与数据库的连接失败,2019-09-15 15:01:40,079 1 INFO? werkzeug:--[15 / Sep / 2019 15:01:40]“ GET / HTTP / 1.1” 500-0 0.000 0.031,2019-09-15 15:01:40,086 1错误? werkzeug:请求时出错:,文件“ /usr/lib/python3/dist-packages/odoo/http.py”,行1320,在调用中,返回self.dispatch(environ,start_response),在调用中的文件“ /usr/lib/python3/dist-packages/odoo/http.py”中,第1293行,返回self.app(environ,start_wrapped),文件“ / usr / lib / python3 / dist-packages / werkzeug / wsgi.py”第599行,在调用中,返回self.app(environ,start_response),文件“ / usr / lib / python3 / dist-packages / odoo” /http.py”中的第1453行,在dispatch,self.setup_db(httprequest)中,文件“ /usr/lib/python3/dist-packages/odoo/http.py”中的第1376行,在setup_db中,httprequest.session.db = db_monodb(httprequest),文件“ /usr/lib/python3/dist-packages/odoo/http.py”,第1537行,位于db_monodb中,dbs = db_list(True,httprequest),文件“ / usr / lib / python3 / dist-packages / odoo / http.py“,行1504,在db_list中,dbs = odoo.service.db.list_dbs(force),文件“ /usr/lib/python3/dist-packages/odoo/service/db.py “,第375行,位于list_dbs中,并带有close(db.curs or())as cr :,在光标中,文件“ /usr/lib/python3/dist-packages/odoo/sql_db.py”,行657,返回Cursor(self。 pool,self.dbname,self。 dsn,序列化=序列化),文件“ /usr/lib/python3/dist-packages/odoo/sql_db.py”,第171行,位于__init 中,self._cnx = pool.borrow(dsn),文件“ /usr/lib/python3/dist-packages/odoo/sql_db.py”,第540行,在_locked中,返回fun(self,* args,** kwargs),文件“ / usr / lib / python3 / dist-packages / odoo / sql_db.py”,第608行,借入,** connection_info),文件“ /usr/lib/python3/dist-packages/psycopg2/init.py”,第130行,在connect中,conn = _connect(dsn,connection_factory = connection_factory,** kwasync),psycopg2.OperationalError:无法将主机名“ db”转换为地址:名称或服务未知---   ''''

2 个答案:

答案 0 :(得分:0)

似乎您缺少docker命令的--link选项。

您首先应该运行postgresql容器:

$ docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name db postgres:10

如您所见,容器名称为db

然后应该启动odoo实例并使其运行:

$ docker run -p 8069:8069 --name odoo --link db:db -t odoo

正如您在此处看到的,--link选项告诉odoo容器将所有对db主机的请求映射到名为db的容器

答案 1 :(得分:0)

这是解决方案。

  • @ odoo.conf,我在db_host = my_database_server_ip之前更改了db_host = db
  • 重新启动容器

它可以恢复工作了:)