【问题标题】:Odoo service restart and update using systemctl使用 systemctl 重启和更新 Odoo 服务
【发布时间】:2018-08-27 18:33:38
【问题描述】:

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

但是更新更改的方式真的很长而且不舒服。

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

【问题讨论】:

    标签: python odoo odoo-9 systemctl start-stop-daemon


    【解决方案1】:

    带服务的 Odoo

    您可以进行如下更改:

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

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

    没有服务的 Odoo

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

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

    自动重新加载 Python 文件

    还有另一个选项可以在 python 文件发生更改时重新加载它们。检查这个other answer

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

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

    只需在您的配置文件中添加--auto-reload。默认情况下 值将是“假”。您不需要传递任何额外的参数。 --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
    

    【讨论】:

    • 例如:我更改了 my_module_a 和 my_module_b。在 openerp-server.conf 中,我没有任何数据库过滤器,我正在使用 3 个数据库。那么当我运行 systemctl start odoo 时,所有 3 个数据库中的 .py 都会更新吗?希望你能理解我的问题。
    • 据我了解,服务重启后 (systemctl start odoo) .py 会根据 odoo-service.conf 文件中过滤的数据库自动更新?
    • 是的,如果你更新python文件,同一个实例的所有数据库都会被更新。如果要更新 xml 文件,则需要在所需的每个数据库中手动更新
    【解决方案2】:
    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 服务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-31
      • 1970-01-01
      • 1970-01-01
      • 2018-03-29
      • 2019-04-25
      • 2022-08-15
      相关资源
      最近更新 更多