ODoo模块V12如何升级到V13?

How can I Upgrade ODoo Module V12 to V13?

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

您可以尝试上面列出的Tasks to do in the migration

  • 将模块版本提高到 13.0.1.0.0
  • 从以前的版本中删除任何可能的迁移脚本。
  • 用以前的提交压缩管理提交(如果有的话)以减少提交噪音。它们被命名为“[UPD] README.rst”、“[UPD] Update $MODULE.pot”、"Update translation files" 和类似的名字,来自OCA-git-botoca-travisoca-transbot.
  • 从代码中删除所有装饰器 @api.multi@api.returns@api.one@api.cr@api.model_cr。现在默认都是多记录的。对于最后一个,您需要调整代码以适应行为变化。
  • 检查非存储计算字段的所有 "compute" 方法是否在任何情况下都为该字段分配一个值,即使它是一个假值。 (https://github.com/odoo/odoo/pull/36743/commits/2e43bfc1c4b2f61e0459614f61f90a77dc3b7233).
  • 如果在计算方法期间未分配,计算存储字段将保留其先前的值,因此不要依赖任何预期的默认值。
  • 替换 sudo(用户): "deprecated use of sudo(user), use with_user(user) instead"
  • 一些 Font Awesome (FA) 图标已更改名称,因为现在 Odoo 使用 FA v5,因此您可能需要在模块视图中更改它们。在 https://fontawesome.com/how-to-use/on-the-web/setup/upgrading-from-version-4#name-changes.
  • 中检查更改后的名称
  • 删除代码中的所有 oldname 字段属性。如果在之前的版本中加入,无论如何都发挥了作用,现在这个版本不支持了,所以如果有需要,创建一个迁移脚本,使用openupgradelib的rename_fields方法。
  • 删除操作 window XML 定义中的 view_type 标签。现在总是 form(从 11.0 开始不支持树)。
  • ir.actions.act_window 个模型中删除 multi 个字段。现在您有 binding_view_types 字段用于指示操作将在哪个视图中可用:listform 或两者都为空。如果通过加速器标记 <act_window> 声明操作,则使用属性 binding_viewshttps://github.com/odoo/odoo/pull/24738/commits/33d51480688065e367eb646f12b89d721749cac9.
  • 中有更多参考
  • 如果 active 字段有一个智能按钮,使用小部件 toggle_button,archive/unarchive 操作无需执行任何其他操作即可使用,因此您可以将其删除。新范例是在使用代码 <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 的版本迁移,请检查以前版本的任务。还建议检查以前迁移中未完成的事情。
  • 完成使模块在新版本上工作所需的其余更改。

正则表达式可以帮助找到要 remove/change 的内容:

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