Odoo 17 高级命令与调试排错手册 ,包含 调试日志、模块依赖检查、数据库连接、PostgreSQL 命令、常见问题排查,适合开发和运维长期使用。
🟢 Odoo 17 高级命令与调试排错手册
1️⃣ 启动与调试
1.1 启动带调试模式
# 开发模式(启用所有调试功能)
python3 odoo-bin -c odoo.conf --dev=all
# 开启 Python 异常堆栈
python3 odoo-bin -c odoo.conf --log-level=debug
1.2 后台启动(Linux)
nohup python3 odoo-bin -c /etc/odoo/odoo.conf > /var/log/odoo/odoo.log 2>&1 &
1.3 实时查看日志
tail -f /var/log/odoo/odoo.log
# 过滤错误
tail -f /var/log/odoo/odoo.log | grep ERROR
1.4 日志分级
-
--log-level=info
:普通信息 -
--log-level=debug
:详细调试信息 -
--log-level=warning
:警告信息 -
--log-level=error
:仅错误信息
2️⃣ 模块管理与调试
2.1 安装模块
python3 odoo-bin -d mydb -i my_module
2.2 升级模块
python3 odoo-bin -d mydb -u my_module
2.3 更新所有模块
python3 odoo-bin -d mydb -u all
2.4 查看模块依赖
# 查看模块依赖关系(Linux 下) grep -r "depends"
/path/to/odoo/addons/my_module/__manifest__.py
2.5 调试模块导入
# 启动时仅加载特定模块
python3 odoo-bin -d mydb -i base,my_module --dev=all
3️⃣ 数据库操作与调试
3.1 创建数据库
python3 odoo-bin -d mydb --db_user=odoo --db_password=odoo --init=base
3.2 删除数据库
python3 odoo-bin -d mydb --db_user=odoo --db_password=odoo --drop
3.3 列出数据库
python3 odoo-bin -l
3.4 PostgreSQL 连接测试
# 登录 PostgreSQL psql -U odoo -d mydb -h localhost
# 查看数据库列表 \l
# 查看表 \dt
# 查询数据
SELECT * FROM res_users LIMIT 5;
3.5 数据库备份与恢复
# 备份
pg_dump -U odoo -h localhost -F c mydb > mydb.backup
# 恢复
pg_restore -U odoo -h localhost -d mydb mydb.backup
4️⃣ 常用日志与排查命令
4.1 查看最近 2000 条日志
tail -n 2000 /var/log/odoo/odoo.log
4.2 查看带时间戳的日志
tail -f /var/log/odoo/odoo.log | awk '{print strftime("%Y-%m-%d %H:%M:%S"), $0}'
4.3 排查常见错误
错误 | 可能原因 | 排查方法 |
---|---|---|
psycopg2.OperationalError: FATAL |
数据库连接失败 | 检查数据库用户名、密码、端口 |
ModuleNotFoundError |
模块路径错误或未安装依赖 | 检查 addons_path 是否包含模块 |
Odoo Server Error |
模块安装或升级错误 | 查看日志,使用 --dev=all 调试 |
Permission denied |
文件权限不足 | 检查日志文件/数据目录权限 |
5️⃣ Docker 相关调试
5.1 查看容器日志
docker logs -f odoo17
5.2 进入容器内部
docker exec -it odoo17 bash
5.3 重启容器
docker restart odoo17
6️⃣ 高级调试技巧
-
调试 Python 异常
python3 odoo-bin -c odoo.conf --dev=all --log-level=debug
-
检查模块依赖冲突
odoo-bin -d mydb -u all --stop-after-init
-
SQL 日志调试
配置文件开启 SQL 日志
log_handler = :DEBUG
-
清理缓存
清理 Odoo 缓存与临时文件
rm -rf /tmp/odoo/*
-
过滤特定模块日志
tail -f /var/log/odoo/odoo.log | grep my_module
7️⃣ 常用速查表(开发运维版)
功能 | 命令示例 |
---|---|
启动 Odoo(开发模式) | python3 odoo-bin -c odoo.conf --dev=all |
安装模块 | python3 odoo-bin -d mydb -i my_module |
升级模块 | python3 odoo-bin -d mydb -u my_module |
更新所有模块 | python3 odoo-bin -d mydb -u all |
查看日志 | tail -f /var/log/odoo/odoo.log |
查看最近 2000 条日志 | tail -n 2000 /var/log/odoo/odoo.log |
SQL 调试 | psql -U odoo -d mydb -h localhost |
Docker 启动 | docker run -p 8069:8069 --name odoo17 -t odoo:17 |
Docker 容器日志 | docker logs -f odoo17 |
清理缓存 | rm -rf /tmp/odoo/* |
💡 建议
-
开发时常用
--dev=all
查看完整调试信息。 -
运维时使用
--logfile
+tail -f
实时排查错误。 -
Docker 部署时挂载配置和数据卷,方便升级和备份。