如何将ODoo模块V12升级到V13?

时间:2019-12-17 07:10:33

标签: migration odoo upgrade odoo-12

我要将Odoo模块V12升级到V13,请指导我如何执行此操作。我可以只升级ODOO 12中的单个模块吗?请逐步指导我。

1 个答案:

答案 0 :(得分:2)

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

  • 将模块版本升级到13.0.1.0.0
  • 从以前的版本中删除所有可能的迁移脚本。
  • 使用先前的提交压缩管理提交(如果有)以减少提交噪音。它们分别命名为“ [UPD] README.rst”,“ [UPD] Update $ MODULE.pot”,“ Update translation files”和类似名称,它们来自 OCA-git-bot ,< em> oca-travis 或 oca-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方法。
  • 删除操作窗口XML定义上的view_type标签。现在始终为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