首页 > 解决方案 > 如何将 ODoo 模块 V12 升级到 V13?

问题描述

我想将我的 Odoo 模块 V12 升级到 V13 请指导我该怎么做。我可以只升级 ODOO 12 中的单个模块吗?请逐步指导我。

标签: migrationodooupgradeodoo-12

解决方案


您可以尝试在上面列出的迁移中执行的任务

  • 将模块版本转换为13.0.1.0.0.
  • 从以前的版本中删除任何可能的迁移脚本。
  • 将管理提交(如果有)与先前的提交合并,以减少提交噪音。它们被命名为“[UPD] README.rst”、“[UPD] Update $MODULE.pot”、“更新翻译文件”和类似的名称,并且来自OCA-git-botoca-travisoca-transbot
  • 从代码中删除所有装饰器@api.multi, @api.returns, @api.one, 。现在它们默认都是多记录的。如果是最后一个,您将需要使代码适应行为变化。@api.cr@api.model_cr
  • 检查非存储计算字段的所有“计算”方法是否在任何情况下都为该字段分配一个值,即使它是虚假的。(https://github.com/odoo/odoo/pull/36743/commits/2e43bfc1c4b2f61e0459614f61f90a77dc3b7233)。
  • 如果在计算方法期间未分配,计算存储字段将保留其先前的值,因此不要依赖任何预期的默认值。
  • 替换 sudo(user):“不推荐使用 sudo(user),改用 with_user(user)”
  • 由于现在 Odoo 使用 FA v5,一些 Font Awesome (FA) 图标已更改名称,因此您可能需要在模块视图中更改它们。检查 https://fontawesome.com/how-to-use/on-the-web/setup/upgrading-from-version-4#name-changes 中更改的名称。
  • 删除oldname代码中的所有字段属性。如果它们是在以前的版本中添加的,它们已经以任何方式发挥了它们的作用,现在在这个版本中它不被支持,所以如果你有需要,创建一个迁移脚本并使用 openupgradelib 的rename_fields方法。
  • 删除view_type操作窗口 XML 定义上的标记。现在总是form(从 11.0 开始不支持树)。
  • 从模型中删除multi字段。ir.actions.act_window现在您有一个binding_view_types字段来指示该操作在哪个视图中可用:listform或者两者都为空。如果通过快捷键标签声明动作<act_window>,则使用属性binding_views。更多参考https://github.com/odoo/odoo/pull/24738/commits/33d51480688065e367eb646f12b89d721749cac9
  • active如果有一个用于字段的智能按钮,带有小部件toggle_button,则无需执行任何其他操作即可使用存档/取消存档操作,因此您可以将其删除。新的范例是在与代码一起存档时放置一个功能区<widget name="web_ribbon" text="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
  • 如果在浮点字段中使用任何小数精度(例如:)import odoo.addons.decimal_precision as dp; x = fields.Float(digits=dp.get_precision("Account")),现在直接放置限定符,无需导入任何内容并简化语法:x = fields.Float(digits="Account").
  • 在清单中,重命名 python 依赖项以使用 PyPI 分发名称而不是导入名称(有关更多信息,请参阅https://github.com/odoo/odoo/pull/25549 )
  • 如果模块涉及会计部分,请参阅https://github.com/OCA/maintainer-tools/issues/430以了解其中检测到的结构更改。
  • 添加测试以增加代码覆盖率。
  • 如果您是从低于 v12 的版本迁移,请检查以前版本的任务。还建议检查以前迁移中未完成的事情。
  • 做您需要做的其余更改以使模块在新版本上工作。

正则表达式可以帮助找到要删除/更改的内容:

grep -nri 'oldname\|sudo([^\)]\+)\|api.multi\|api.returns\|api.one\|api.cr\|api.model_cr\|12.0\|compute=' $MODULE

推荐阅读