Odoo 17 高级命令与调试排错手册

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️⃣ 高级调试技巧

  1. 调试 Python 异常

    python3 odoo-bin -c odoo.conf --dev=all --log-level=debug

  2. 检查模块依赖冲突

    odoo-bin -d mydb -u all --stop-after-init

  3. SQL 日志调试

    配置文件开启 SQL 日志

    log_handler = :DEBUG

  4. 清理缓存

    清理 Odoo 缓存与临时文件

    rm -rf /tmp/odoo/*

  5. 过滤特定模块日志

    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 部署时挂载配置和数据卷,方便升级和备份。