Odoo 14 开发环境搭建与核心配置详解
Odoo 是一个高度模块化的开源 ERP 平台,其开发环境的搭建是进入定制化开发的第一步。本文将系统性地介绍如何在 Ubuntu 系统上构建稳定、可复现的 Odoo 14 开发环境,并深入解析数据库管理、配置文件机制、开发者模式启用及插件加载原理。
Odoo 生态概览
Odoo 提供两个主要发行版本:社区版(Community Edition)与企业版(Enterprise Edition)。社区版基于 LGPLv3 协议完全开源,涵盖会计、销售、采购、库存等核心业务模块;企业版在社区版基础上扩展了高级报表、文档协作、现场服务调度等功能,需商业授权。两者共享同一代码基线,企业版功能通过私有仓库分支提供。
官方源码托管于 GitHub(https://github.com/odoo/odoo),采用语义化版本控制。长期支持(LTS)版本如 14.0 提供五年维护周期,适用于生产部署;短期版本则侧重新特性验证与 SaaS 场景快速迭代。
Runbot(https://runbot.odoo.com)是 Odoo 官方持续集成平台,自动拉取最新提交并构建测试实例。每个构建结果以颜色标识状态(绿色=全量通过,红色=测试失败),并预置两类数据库:完整模块集(full)与最小化基础库(base)。测试账户包括 admin/admin、demo/demo 和 portal/portal,适用于快速功能验证。
第三方生态方面,Odoo Community Association(OCA)维护大量高质量社区模块(https://github.com/OCA),但需注意版本兼容性;官方帮助论坛(https://help.odoo.com)和学习平台(https://www.odoo.com/slides)则是解决常见问题与系统性学习的重要资源。
Ubuntu 环境下的源码部署
推荐使用 Ubuntu Server 18.04 LTS 或更新版本作为开发主机,确保与典型生产环境一致,避免因依赖差异导致的部署问题。
基础依赖安装
sudo apt update
sudo apt install -y \
git python3-pip build-essential wget python3-dev python3-venv \
python3-wheel libxslt1-dev libzip-dev libldap2-dev libsasl2-dev \
python3-setuptools libpng-dev libjpeg-dev gdebi-core
PDF 渲染引擎配置
Odoo 报表导出依赖 wkhtmltopdf。建议使用官方编译版本以保证稳定性:
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltopdf_0.12.6-1.focal_amd64.deb
sudo dpkg -i wkhtmltopdf_0.12.6-1.focal_amd64.deb
sudo apt --fix-broken install -y
PostgreSQL 初始化
sudo apt install -y postgresql
sudo -u postgres createuser --superuser $USER
该步骤创建与当前系统用户同名的 PostgreSQL 超级用户,使 Odoo 可免密连接本地数据库(默认通过 Unix socket,端口 5432)。生产环境应改用 --createdb 并显式设置密码:
psql -c "ALTER ROLE $USER WITH PASSWORD 'secure_password';"
源码获取与虚拟环境构建
mkdir -p ~/odoo-src && cd ~/odoo-src
git clone --branch 14.0 --depth 1 --single-branch https://github.com/odoo/odoo.git
python3 -m venv ~/venv-odoo14
source ~/venv-odoo14/bin/activate
cd odoo
pip install -r requirements.txt
首次启动与初始化
createdb odoo_dev
./odoo-bin -d odoo_dev -i base --addons-path=addons,../custom_addons --db-filter=^odoo_dev$
关键参数说明:
-d odoo_dev:指定目标数据库--db-filter=^odoo_dev$:限制 Odoo 实例仅访问匹配正则的数据库(增强安全性)--addons-path:定义模块搜索路径,支持多目录逗号分隔-i base:强制安装基础模块,触发数据库结构初始化
启动成功后,访问 http://localhost:8069,使用默认管理员账户 admin/admin 登录。
数据库生命周期管理
Odoo 内置数据库管理界面(/web/database/manager)提供图形化操作入口,但生产级运维更推荐命令行工具链以提升效率与可追溯性。
常用命令行操作
创建带演示数据的测试库:
createdb odoo_test && ./odoo-bin -d odoo_test
克隆现有数据库(需先停止 Odoo 进程):
createdb -T odoo_dev odoo_clone
cp -r ~/.local/share/Odoo/filestore/odoo_dev ~/.local/share/Odoo/filestore/odoo_clone
备份与恢复(含文件存储):
# 备份
pg_dump -Fc -f odoo_dev.dump odoo_dev
tar -cjf odoo_dev.tgz odoo_dev.dump ~/.local/share/Odoo/filestore/odoo_dev
# 恢复
tar -xf odoo_dev.tgz
pg_restore -C -d odoo_dev odoo_dev.dump
删除数据库及关联文件:
dropdb odoo_dev
rm -rf ~/.local/share/Odoo/filestore/odoo_dev
配置文件标准化管理
为避免冗长命令行参数,Odoo 支持通过配置文件集中管理运行时行为。生成模板并自定义:
./odoo-bin --save --config ~/odoo.conf --stop-after-init
配置项命名规则:命令行长选项(如 --without-demo)转为下划线格式(without_demo),部分特例如下:
| 命令行参数 | 配置文件键名 | 说明 |
|---|---|---|
--db-filter |
dbfilter |
数据库名称正则匹配 |
--no-http |
http_enable = False |
禁用 HTTP 服务 |
--dev |
dev_mode |
启用开发模式调试器 |
典型配置片段示例:
[options]
addons_path = /home/user/odoo-src/odoo/addons,/home/user/custom_addons
data_dir = /home/user/.local/share/Odoo
db_host = False
db_port = False
db_user = user_name
db_password = secure_password
dbfilter = ^odoo_dev$
logfile = /var/log/odoo/odoo-server.log
log_level = info
workers = 4
开发者模式激活与调试
开发者模式解锁后台技术元信息与调试工具。启用方式有两种:
- 登录后进入 设置 → 激活开发者模式
- 直接修改 URL,在
#前插入?debug=1(如:http://localhost:8069/web?debug=1#action=...)
进阶调试模式 ?debug=assets 将禁用前端资源压缩,便于审查原始 JS/CSS 文件。需注意:自 Odoo 13 起,调试状态持久化至用户会话,移除 URL 参数不会退出模式,须通过界面按钮或清除浏览器会话。
模块列表刷新机制
当新增自定义模块或更新现有模块时,需手动触发模块索引重建:
- 确保模块位于
addons_path指定路径内 - 模块根目录必须包含
__manifest__.py文件 - 检查
installable键值是否为True - 访问
/web#action=ir.actions.act_window%26model=ir.module.module,点击右上角 更新应用列表
该操作本质是扫描所有 addons_path 下的 __manifest__.py,解析模块元数据并同步至数据库表 ir_module_module。若模块已存在,则更新版本号与依赖关系;否则执行注册流程。