Odoo 源码分析: 启动和加载
我是最早在 2015 年的时候接触 Odoo,那个时候还只是停留在简单使用的阶段,当时下载了 Bitnami 封装好的安装包,整个过程非常简单。给我印象最深的是 Odoo 有众多模块,可以按需安装,非常方便。
今年公司使用 Odoo 作为 WMS 系统,实施期间遇到了一些问题,因此我深入研究了 Odoo 的源码。现在,我可以在这里分享一下我的一些见解。我打算写一个系列的文章,具体写几篇还没想好。至于版本,就用目前最新的 12.0。
今天先从启动和加载说起。
首先,GitHub
上取一份代码:
git clone https://github.com/odoo/odoo.git
git checkout 12.0
可以先看一下目录结构
$ tree -L 1
.
├── CONTRIBUTING.md
├── COPYRIGHT
├── LICENSE
├── MANIFEST.in
├── README.md
├── addons
├── debian
├── doc
├── odoo
├── odoo-bin
├── requirements.txt
├── setup
├── setup.cfg
└── setup.py
6 directories, 9 files
项目提供了安装脚本 setup.py
,执行安装脚本会自动安装所有依赖,也可以不通过 setup.py
安装,在安装好 requirements.txt
的依赖后直接通过 odoo-bin
运行,两种方式效果是一样的。我一般会直接通过 odoo-bin
运行项目,方便管理。
启动的过程
可以先看一下 odoo-bin
这个脚本的内容:
#!/usr/bin/env python3
# set server timezone in UTC before time module imported
__import__('os').environ['TZ'] = 'UTC'
import odoo
if __name__ == "__main__":
odoo.cli.main()
Odoo 在启动的时候会时间设置为 UTC
时间(为了保证一致性,存储成 UTC 时间是一种好的实践),也就是说在 Odoo 的内部所有时间都存储成 UTC
时间,页面上显示的时间是根据本地时区转换后的时间。
参考资料: