【问题标题】:Odoo Database Export ErrorOdoo 数据库导出错误
【发布时间】:2018-07-15 08:34:31
【问题描述】:

我在 Windows 10 中使用 Odoo 11,这使其不稳定,所以我决定从 linux 启动它。

问题是当我尝试从数据库管理器中导出数据库时,它给了我500 Internal Server Error。知道出了什么问题吗?

这是日志:

2018-07-15 07:54:29,292 6920 错误 odoo2 odoo.addons.web.controllers.main: Database.backup 回溯(最近一次通话最后): 文件“C:\Program Files\Odoo 11.0\server\odoo\tools\misc.py”,第 94 行,在 find_pg_tool 返回哪个(名称,路径=路径) 文件“C:\Program Files\Odoo 11.0\server\odoo\tools\which.py​​”,第 144 行,其中 raise IOError(ENOENT, '%s not found' % (mode & X_OK and 'command' or 'file'), file) FileNotFoundError: [Errno 2] 命令未找到: 'pg_dump'

在处理上述异常的过程中,又发生了一个异常:

Traceback (most recent call last):
  File "C:\Program Files\Odoo 11.0\server\odoo\addons\web\controllers\main.py", line 735, in backup
    dump_stream = odoo.service.db.dump_db(name, None, backup_format)
  File "<decorator-gen-8>", line 2, in dump_db
  File "C:\Program Files\Odoo 11.0\server\odoo\service\db.py", line 40, in if_db_mgt_enabled
    return method(self, *args, **kwargs)
  File "C:\Program Files\Odoo 11.0\server\odoo\service\db.py", line 216, in dump_db
    odoo.tools.exec_pg_command(*cmd)
  File "C:\Program Files\Odoo 11.0\server\odoo\tools\misc.py", line 122, in exec_pg_command
    prog = find_pg_tool(name)
  File "C:\Program Files\Odoo 11.0\server\odoo\tools\misc.py", line 96, in find_pg_tool
    raise Exception('Command `%s` not found.' % name)
Exception: Command `pg_dump` not found.
2018-07-15 07:54:29,800 6920 INFO odoo2 odoo.sql_db: ConnectionPool(used=2/count=4/max=64): Closed 1 connections to 'host=localhost port=5432 user=openpg password=xxxxxxxxx sslmode=prefer dbname=odoo'
2018-07-15 07:54:29,804 6920 INFO odoo2 odoo.sql_db: ConnectionPool(used=1/count=1/max=64): Closed 3 connections to 'host=localhost port=5432 user=openpg password=xxxxxxxxx sslmode=prefer dbname=odoo2'
2018-07-15 07:54:29,819 6920 INFO odoo2 werkzeug: 127.0.0.1 - - [15/Jul/2018 07:54:29] "POST /web/database/backup HTTP/1.1" 500 -
2018-07-15 07:54:29,827 6920 ERROR odoo2 werkzeug: Error on request:
Traceback (most recent call last):
  File "C:\Program Files\Odoo 11.0\python\lib\site-packages\werkzeug\serving.py", line 209, in run_wsgi
    execute(self.server.app)
  File "C:\Program Files\Odoo 11.0\python\lib\site-packages\werkzeug\serving.py", line 197, in execute
    application_iter = app(environ, start_response)
  File "C:\Program Files\Odoo 11.0\server\odoo\service\server.py", line 252, in app
    return self.app(e, s)
  File "C:\Program Files\Odoo 11.0\server\odoo\service\wsgi_server.py", line 166, in application
    return application_unproxied(environ, start_response)
  File "C:\Program Files\Odoo 11.0\server\odoo\service\wsgi_server.py", line 154, in application_unproxied
    result = handler(environ, start_response)
  File "C:\Program Files\Odoo 11.0\server\odoo\http.py", line 1304, in __call__
    return self.dispatch(environ, start_response)
  File "C:\Program Files\Odoo 11.0\server\odoo\http.py", line 1278, in __call__
    return self.app(environ, start_wrapped)
  File "C:\Program Files\Odoo 11.0\python\lib\site-packages\werkzeug\wsgi.py", line 600, in __call__
    return self.app(environ, start_response)
  File "C:\Program Files\Odoo 11.0\server\odoo\http.py", line 1472, in dispatch
    response = self.get_response(httprequest, result, explicit_session)
  File "C:\Program Files\Odoo 11.0\server\odoo\http.py", line 279, in __exit__
    self._cr.commit()
  File "C:\Program Files\Odoo 11.0\server\odoo\sql_db.py", line 155, in wrapper
    return f(self, *args, **kwargs)
  File "C:\Program Files\Odoo 11.0\server\odoo\sql_db.py", line 375, in commit
    result = self._cnx.commit()
psycopg2.InterfaceError: connection already closed
2018-07-15 07:54:43,988 6920 INFO odoo2 werkzeug: 192.168.1.2 - - [15/Jul/2018 07:54:43] "POST /longpolling/poll HTTP/1.1" 200 -
2018-07-15 07:55:34,032 6920 INFO odoo2 werkzeug: 192.168.1.2 - - [15/Jul/2018 07:55:34] "POST /longpolling/poll HTTP/1.1" 200 -
2018-07-15 07:56:24,078 6920 INFO odoo2 werkzeug: 192.168.1.2 - - [15/Jul/2018 07:56:24] "POST /longpolling/poll HTTP/1.1" 200 -
2018-07-15 07:56:49,944 6920 INFO odoo2 odoo.addons.base.ir.ir_cron: Starting job `Mail: Fetchmail Service`.
2018-07-15 07:56:50,037 6920 INFO odoo2 odoo.addons.fetchmail.models.fetchmail: start checking for new emails on pop server PROJECTS APPLICATIONS
2018-07-15 07:56:53,536 6920 INFO odoo2 odoo.addons.fetchmail.models.fetchmail: General failure when trying to fetch mail from pop server PROJECTS APPLICATIONS.
Traceback (most recent call last):
  File "C:\Program Files\Odoo 11.0\server\odoo\addons\fetchmail\models\fetchmail.py", line 202, in fetch_mail
    pop_server = server.connect()
  File "C:\Program Files\Odoo 11.0\server\odoo\addons\fetchmail\models\fetchmail.py", line 124, in connect
    connection.pass_(self.password)
  File "C:\Program Files\Odoo 11.0\python\lib\poplib.py", line 213, in pass_
    return self._shortcmd('PASS %s' % pswd)
  File "C:\Program Files\Odoo 11.0\python\lib\poplib.py", line 176, in _shortcmd
    return self._getresp()
  File "C:\Program Files\Odoo 11.0\python\lib\poplib.py", line 152, in _getresp
    raise error_proto(resp)
poplib.error_proto: b'-ERR [AUTH] Authentication failed.'
2018-07-15 07:56:53,536 6920 INFO odoo2 odoo.addons.fetchmail.models.fetchmail: start checking for new emails on pop server Recruitment 
2018-07-15 07:57:02,180 6920 INFO odoo2 odoo.addons.fetchmail.models.fetchmail: General failure when trying to fetch mail from pop server Recruitment .
Traceback (most recent call last):
  File "C:\Program Files\Odoo 11.0\server\odoo\addons\fetchmail\models\fetchmail.py", line 202, in fetch_mail
    pop_server = server.connect()
  File "C:\Program Files\Odoo 11.0\server\odoo\addons\fetchmail\models\fetchmail.py", line 124, in connect
    connection.pass_(self.password)
  File "C:\Program Files\Odoo 11.0\python\lib\poplib.py", line 213, in pass_
    return self._shortcmd('PASS %s' % pswd)
  File "C:\Program Files\Odoo 11.0\python\lib\poplib.py", line 176, in _shortcmd
    return self._getresp()
  File "C:\Program Files\Odoo 11.0\python\lib\poplib.py", line 152, in _getresp
    raise error_proto(resp)
poplib.error_proto: b'-ERR [AUTH] Authentication failed.'
2018-07-15 07:57:14,139 6920 INFO odoo2 werkzeug: 192.168.1.2 - - [15/Jul/2018 07:57:14] "POST /longpolling/poll HTTP/1.1" 200 -
2018-07-15 07:57:56,378 6920 INFO odoo2 odoo.addons.base.ir.ir_cron: Starting job `Event: Mail Scheduler`.
2018-07-15 07:58:04,193 6920 INFO odoo2 werkzeug: 192.168.1.2 - - [15/Jul/2018 07:58:04] "POST /longpolling/poll HTTP/1.1" 200 -

【问题讨论】:

    标签: database odoo odoo-11


    【解决方案1】:

    您的错误消息中有趣的部分是:

    command not found: 'pg_dump'
    

    这表示您需要将PostgreSQL的bin目录(默认:C:\Program Files\PostgreSQL\9.4\bin)添加到您的PATH中。 作为参考,请参阅源安装/准备部分中的“在 Windows 上”段落:https://www.odoo.com/documentation/11.0/setup/install.html#id3 请注意,如果您将 Odoo 作为 Windows 服务运行,则需要重新启动 Windows,以便进程在系统环境中获取此更改变量。

    截断的另一条日志包含另外两条错误消息。 第一条消息是

    psycopg2.InterfaceError: connection already closed
    

    这可能是由于转储/导出失败后的下一条语句造成的。或者,这可能是您所指的“不稳定”的另一个症状。通常,这种错误只会在长时间运行的事务从数据库端被终止(例如超时)然后仍然从客户端使用时发生。

    要进一步检查这一点,请发布另一个问题,其中包含更多详细信息,例如:观察到的错误消息、postgres 配置和 Odoo 配置文件。

    第二条消息是

    poplib.error_proto: b'-ERR [AUTH] Authentication failed.'
    

    来自odoo\addons\fetchmail\models\fetchmail.py。这表明您的 Odoo 服务器的电子邮件设置中的用户名/密码设置存在问题。这与稳定性或导出数据库的能力无关。

    【讨论】:

    • 感谢@miv 的观察。我修改了'pg_path'并设法得到它。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    • 2017-08-31
    • 2015-03-08
    相关资源
    最近更新 更多