You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo自定义插件版本管理及migration迁移钩子不生效问题咨询

Odoo 自定义模块迁移钩子生效及版本管控方案

基础配置校验

  • 模块根目录下的migrations目录必须与__manifest__.py、models等目录同级,不可嵌套在其他路径下
  • 版本号子目录命名需完全遵循语义化版本规则,且与升级后的目标版本完全匹配,例如目标升级版本为1.1.0,则创建migrations/1.1.0目录
  • 钩子文件名必须严格为pre-migrate.py、post-migrate.py,不可使用自定义命名(如你之前编写的pre-hook.py不符合规则)。两个文件都需要暴露migrate(cr, version)函数,入参分别为数据库游标、当前升级的版本号

版本管控核心规则

Odoo 迁移钩子的触发逻辑基于数据库已安装版本与__manifest__.py声明版本的对比结果:

  • 仅当__manifest__.py中的版本号高于数据库中ir_module_module表对应模块记录的latest_version值时,才会触发对应版本目录下的迁移钩子
  • 测试时可先安装低版本模块(如版本号设为1.0.0,无迁移钩子),确认数据库中版本记录正确后,再修改__manifest__.py版本号为更高版本(如1.1.0),重启服务升级模块即可触发钩子
  • 版本号大小按段拆分数值对比,例如1.10.0 > 1.2.0,不要在版本号中添加字母等非数字后缀,避免比较逻辑异常

触发操作注意事项

  • 修改迁移钩子代码或模块版本号后,必须先重启Odoo服务,再进入应用列表升级对应模块,仅刷新页面无法生效
  • 多次测试时如果需要重复触发同一版本的钩子,需要先将数据库中对应模块的latest_version字段修改为更低的版本号,相同版本号不会重复触发迁移
  • 钩子执行过程中抛出异常会导致模块升级中断,相关错误信息会输出到Odoo运行日志,可通过日志排查执行问题

内容的提问来源于stack exchange,提问作者gongarek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 00:24:05