如何访问Odoo 16 Enterprise数据库并通过SQL删除记录
在Odoo 16企业版中通过SQL访问数据库的方法
方法1:用PostgreSQL命令行工具(psql)直接连接
- 从Odoo配置文件(
odoo.conf)里提取数据库连接信息:db_host、db_port、db_user、db_password,以及目标数据库名称 - 打开终端,输入连接命令:
本地部署场景通常可简化为psql -h <db_host> -p <db_port> -U <db_user> -d <你的数据库名>psql -U odoo -d your_db_name,按提示输入密码即可完成连接 - 连接成功后,就能像在pgAdmin中一样执行SQL语句,比如删除指定记录:
DELETE FROM res_partner WHERE id = 123;
方法2:通过Odoo Shell执行原生SQL
- 启动Odoo Shell并指定目标数据库:
odoo-shell -d <你的数据库名> -c odoo.conf - 进入Shell后,借助Odoo内置的数据库游标执行SQL:
这种方式无需额外配置数据库连接,直接复用Odoo的权限与配置,适合不想单独连接数据库的场景# 执行删除语句 env.cr.execute("DELETE FROM res_partner WHERE id = 123;") # 手动提交事务(按需操作) env.cr.commit()
必须注意的事项
- 优先备份:执行删除操作前一定要对数据库做完整备份,避免误删数据无法恢复
- 警惕关联数据:Odoo表间存在大量外键关联,直接删除单表记录可能导致数据混乱;若业务允许,优先使用Odoo的ORM方法删除(如
env['res.partner'].browse(123).unlink()),它会自动处理关联子数据 - 控制操作权限:确保使用的数据库用户具备对应读写权限,避免用超级用户随意操作,防止破坏数据库完整性
内容的提问来源于stack exchange,提问作者user19986231
相关产品推荐
相关产品推荐

