Odoo 12数据库创建失败:提示'relation "ir_model" does not exist'错误求助
Odoo 12 创建数据库报错:relation "ir_model" does not exist 解决办法
问题场景
按照Odoo 15验证有效的部署步骤搭建Odoo 12,创建数据库时触发如下错误:
Database creation error: relation "ir_model" does not exist LINE 1: SELECT * FROM ir_model WHERE state='manual' ^
相关日志信息:
INFO odoo12 odoo.sql_db: ConnectionPool(used=0/count=0/max=64): Closed 1 connections to 'user=odoo12 password=xxx dbname=odoo12 host=localhost port=5432 sslmode=prefer' INFO odoo12 werkzeug: 127.0.0.1 - - [27/Feb/2024 09:22:58] "GET /web/database/selector HTTP/1.1" 200 - 13 0.010 1.595
核心原因
Odoo 12与15的依赖要求、数据库初始化逻辑存在差异,直接套用15的部署步骤会导致数据库初始化不完整,关键系统表未创建。
解决步骤
1. 检查PostgreSQL版本兼容性
Odoo 12仅支持PostgreSQL 9.6~10.x,若当前版本过高(如12+)会触发兼容性问题:
- 执行命令查看版本:
psql --version - 版本不符的话,卸载现有PostgreSQL,安装9.6或10版本。
2. 重新初始化数据库
停止Odoo 12服务后,手动初始化数据库:
- 登录PostgreSQL:
sudo -u postgres psql - 删除问题数据库:
DROP DATABASE odoo12; - 新建空数据库并指定所有者:
CREATE DATABASE odoo12 OWNER odoo12; - 找到Odoo 12源码目录,执行基础初始化脚本:
sudo -u postgres psql -d odoo12 -f /path/to/odoo12/addons/base/base.sql sudo -u postgres psql -d odoo12 -f /path/to/odoo12/addons/base/data/base_data.sql
3. 确认数据库用户权限
确保Odoo 12对应的PostgreSQL用户拥有足够权限:
- 登录PostgreSQL:
sudo -u postgres psql - 执行权限赋予命令:
ALTER USER odoo12 WITH SUPERUSER; - 重启PostgreSQL服务:
sudo systemctl restart postgresql
4. 校验Odoo配置文件
检查配置文件(通常在/etc/odoo/odoo.conf)中的数据库参数是否正确:
[options] db_host = localhost db_port = 5432 db_user = odoo12 db_password = your_password
保存后重启Odoo 12服务,重新尝试创建数据库。
内容的提问来源于stack exchange,提问作者Siwar
相关产品推荐
相关产品推荐

