这是Odoo系列文章的第二篇,完整目录请见最好用的免费ERP系统Odoo 11开发指南
前面我们一起学习了Odoo 11的安装(10分钟带你搭建史上最强的ERP系统-Odoo最新版),接下来就要开始对这个无比强大的ERP系统(说它是ERP其实不太精确,因为实在是包罗万象,官网、论坛乃至电商网站应有尽有)进一步探索的旅程了。
Odoo中可以安装自开发的插件、第三方插件以及OCA(Odoo Community Association)维护的插件。
接前例,Odoo安装的路径为~/odoo-dev/odoo,并且配置文件为~/odoo-dev/myodoo.cfg
注:本文中如无特殊说明所进行的命令行操作均在~/odoo-dev下进行
1.准备工作
在配置文件中添加~/odoo-dev/local-addons/目录
addons_path = … …,~/odoo-dev/local-addons
在~/odoo-dev/目录中重新启动实例
odoo/odoo-bin -c myodoo.cfg
小技巧
在第一次调用odoo-bin初始化数据库的时候,可以在命令中添加–addons-path,用逗号分隔,当然此处需要添加基础插件目录odoo/odoo/addons和核心插件目录odoo/addons,这种方法还要求local-addons中不能为空。后面我们再一起学习插件的开发,这里可以通过以下的hack方法来顺利完成以上命令的运行
1 2 3 4 5 6 7 |
mkdir -p ~/odoo-dev/local-addons/dummy touch ~/odoo-dev/local-addons/dummy/__init__.py echo '{"name": "dummy", "installable": False}' > ~/odoo-dev/local-addons/dummy/__manifest__.py odoo/odoo-bin -d mydatabase --addons-path="odoo/odoo/addons,odoo/addons,~/odoo-dev/local-addons" --save -c ~/odoo-dev/myodoo.cfg --stop-after-init # Odoo仅在命令行运行时才会检查插件文件是否存在,实际上此时已经可以删除dummy目录了 |
如何更新插件列表?
在addons-path下添加文件夹,需要手动进行更新才会Odoo后台的App列表中进行更新。
首先要开启开发者模式(参见前文开发者模式部分),点击Apps>Update Apps List来进行更新。更新过程是通过读取配置文件获取到包含插件的目录,然后读取各插件目录下的__manifest__.py文件中的字典,只要installable的值不为False,系统就会对已存在的插件进行更新,尚未存在的插件进行新增。此时便可以在Apps中对其进行搜索了。
插件安装
Odoo拥有丰富的内置插件,在后台中点击Apps进行搜索并点击安装,这种方法非常简单,请读者自行尝试。下面我们讲一下如何通过命令行进行安装和更新,安装前需获取插件__manifest.py__上一级目录名,如
1 2 3 4 5 |
# 命令行的主要优点在于可以同时安装多个插件 # 安装时会同时安装所需的依赖 odoo/odoo-bin -c myodoo.cfg -i crm,mass_mailing --stop-after-init # 更新仅需将参数-i替换为-u odoo/odoo-bin -c myodoo.cfg -u crm,mass_mailing --stop-after-init |
注意:在生产环境进行更新时请务必做好备份
安装时的基本流程为:
1.若有preinit钩子,先运行
2.从模型定义中载入Python源码并根据需要更新数据库结构
3.载入插件数据文件并更新数据库
4.若有demo数据则进行安装
5.若有postinit钩子,则运行
6.对插件的视图定义进行验证
7.若激活了测试数据和测试流程,则对插件进行测试
8.更新数据库中的模块状态
9.根据插件的翻译文件更新数据库
以上preinit钩子和postinit钩子分别通过__manifest__.py中的pre_init_hook和post_init_hook进行定义,对应值为__init.py__中的函数名。在更新插件时要注意新增的依赖需要手动进行安装。