4

Odoo 服务由systemctl start odoo. 我正在使用 Centos。当我想更新更改后的 *.py 代码时,我曾经这样做过:

1. systemctl stop odoo
Then I update my module and database by useing this:
2. ./odoo.py -c openerp-server.conf -u <my_module_name> -d <database_name>
3. stop service by ctrl + c
4. systemctl start odoo

但更新更改的方式非常漫长且不舒服。

是否有更短的方法以更短的方式执行相同的操作?

4

2 回答 2

3

带服务的 Odoo

您可以进行如下更改:

  1. 停止服务器:systemctl stop odoo
  2. 启动服务器:systemctl start odoo. 这里.py更新了
  3. 如果您还需要更新xml或一些翻译,您可以Update在 Odoo 界面的模块描述表单上按按钮。

注意:有模块可以重新加载特定的 xml 视图。如果你对它感兴趣,我可以看看我是否找到了。

没有服务的 Odoo

如果您在本地计算机上开发,则不需要使用systemctl. 只需直接运行 Odoo odoo.py,您就可以立即看到更改:

./odoo.py -c openerp-server.conf -u <my_module_name> -d <database_name>

自动重新加载 Python 文件

当 python 文件发生变化时,还有另一个选项可以重新加载它们。检查这个其他答案

通常,如果您更改 python 代码意味着,您需要重新启动服务器以应用新更改。

--auto-reload参数启用意味着,您不需要重新启动服务器。它可以自动重新加载 python 文件和 xml 文件,而无需重新启动服务器。它需要 pyinotify。它是一个用于监控文件系统更改的 Python 模块。

只需添加--auto-reload您的配置文件。默认情况下,该值为“false”。您不需要传递任何额外的参数。 --auto-reload足够的。如果一切设置并正常工作,您将获得

openerp.service.server: Watching addons folder /opt/odoo/v8.0/addons
openerp.service.server: AutoReload watcher running in the server log. Don't forget to install pyinotify package.

但是在odoo 10中只需添加--dev=reload参数

--dev=DEV_MODE      Enable developer mode. Param: List of options
                    separated by comma. Options : all,
                    [pudb|wdb|ipdb|pdb], reload, qweb, werkzeug, xml
于 2018-03-19T10:17:17.620 回答
0
Failed to stop odoo.service: Access denied. See system logs and 'systemctl status odoo.service' for details.

最初,我收到此错误。然后尝试使用 su 并得到了这个。

Failed to stop odoo.service: Unit odoo.service not loaded.

我关心的是如何识别完美的文件,通过它我可以在新模块安装后重新启动 Odoo 服务。

于 2021-06-18T04:54:56.560 回答