将自定义模块从 Odoo 13 迁移到 15

Posted

技术标签:

【中文标题】将自定义模块从 Odoo 13 迁移到 15【英文标题】:Migration of custom Module from Odoo 13 to 15 【发布时间】:2022-01-16 19:16:26 【问题描述】:

向所有 Odoo 开发者问好!

我目前正在尝试将插件从 Odoo 13 迁移到 15。我的插件在 Odoo 13 中运行良好,因此我试图了解在 Odoo 15 中进行了哪些更改以升级我的模块。

我遇到的第一个错误如下:

Field selection_mobile_tablet referenced in related field definition devices.inuse.selection_mobile_tablet does not exist.

代码:


devices_in_use_ids = fields.One2many(
        'devices.inuse', 'contacts_addon_class_id', string="Secure APPS Versions")


class DevicesInUse(models.Model):
    _name = 'devices.inuse'
    _rec_name = 'devices_in_use'

    contacts_addon_class_id = fields.Many2one(
        'res.partner', string="Contacts Class")

    devices_in_use = fields.Many2one(
        'device.setup', string="Devices In Use", tracking=1)
    selection_mobile_tablet = fields.Selection(
        related='devices_in_use.selection_mobile_tablet', string="Mobile / Tablet", tracking=1)

Selection 字段似乎不起作用,有没有人在 Odoo 15 中进行过这种体验并解决了这个问题?

谢谢。


更新:

我将上面提到的代码注释掉,希望它能让我走得更远,但现在我得到一个我理解更少的错误。但也许有人可以帮助解决这个问题:

psycopg2.errors.InvalidTableDefinition: column "id" is in a primary key

【问题讨论】:

【参考方案1】:

错误信息显示相关字段“devices_in_use.selection_mobile_tablet”,即名为 selection_mobile_tablet 的字段在模型“device.setup”中不存在。能否检查确认一下字段是否存在?

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。 感谢您的回答。 device.setup 类/模型位于我尚未安装的另一个模块中。安装包含类 device.setup 的模块后,出现错误“相关字段定义 devices.inuse.selection_mobile_tablet 中引用的字段 selection_mobile_tablet 不存在。”失去了。现在我面临一个与 sql 相关的错误:“psycopg2.errors.InvalidTableDefinition:列“id”在主键中”。有人对此有意见吗?【参考方案2】:

正如 Odoo Mates 在开始时所说的那样,“devices_in_use.selection_mobile_tablet”有问题。正如您所说,它位于另一个未迁移的模块中。所以我知道你对另一个模块有依赖。

首先要做的事情。所有迁移都应该从依赖项开始,如果模块的依赖项未迁移,则无法迁移模块。

您现在面临的错误是由您的模块的误操作引起的。表(因为有些字段“disapered”/commented)不一致。你评论了哪些台词?

恕我直言,您应该取消注释该代码并开始迁移依赖模块。

【讨论】:

以上是关于将自定义模块从 Odoo 13 迁移到 15的主要内容,如果未能解决你的问题,请参考以下文章

Odoo 13 如何安装自定义模块

如何将自定义用户模型迁移到 Django 中的不同应用程序?

odoo14和Odoo15的区别

将自定义字体添加到 Xcode 13+

查询数据时,Prisma 将自定义字段附加到 info 参数

无法将自定义消息从一个控件发送到另一个控件