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-bot、oca-travis 或 oca-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
字段用于指示操作将在哪个视图中可用:list
、form
或两者都为空。如果通过加速器标记 <act_window>
声明操作,则使用属性 binding_views
。 https://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
我想将我的 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-bot、oca-travis 或 oca-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
字段用于指示操作将在哪个视图中可用:list
、form
或两者都为空。如果通过加速器标记<act_window>
声明操作,则使用属性binding_views
。 https://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