如何将一个自定义模块从open erp 7.0升级到ODOO 8.0?

时间:2015-11-04 08:40:53

标签: python xml openerp upgrade openerp-7

我想更新已在OpenErp v7.0中安装和编写的My Custom模块。但我想迁移到ODOO v8.0。任何人都可以帮我解决这个问题。升级代码的确切过程是什么?

谢谢,Chandu

3 个答案:

答案 0 :(得分:0)

首先,您必须修复从版本7到版本8的导入 作为一个例子

import osv

将是

import openerp.osv

版本8

版本8中使用的模型与版本7中的模型几乎相同。因此您很有可能只需要修复导入。

如果您在版本7中使用的型号不再存在。您应该搜索替换它的模型并将代码重写为新模型。

答案 1 :(得分:0)

  

虽然这不是提出这类问题的正确平台   为了帮助您开始使用新的API代码..以下是您应该开始在网络上浏览的一些新概念。

[1] 记录/记录集和模型

OpenERP / Odoo的新版本8.0引入了新的ORM API。

它打算添加更连贯,更简洁的语法并提供双向兼容性。

新API将其先前的根设计保留为模型和记录,但现在添加了诸如Environment和Recordset之类的新概念。

[2] 模型

模型是业务对象的表示。

它基本上是一个定义存储在数据库中的各种类知识和字段的类。模型中定义的所有函数,以前可由模型直接调用。

这个范例已经改变,因为通常你不应该直接访问Model而是RecordSet

要实例化模型,您必须继承openerp.model.Model:

from openerp import models, fields, api, _


class MyModel(models.Model):

    _name = 'a.model'  # Model identifer used for table name

    firstname = fields.Char(string="Firstname")

[3] 修改环境

如果您需要修改当前上下文,可以使用with_context()函数。

self.env['res.partner'].with_context(tz=x).create(vals)

注意不要使用此功能修改当前的RecordSet:

self = self.env['res.partner'].with_context(tz=x).browse(self.ids)

它将在重新浏览后修改RecordSet中的当前记录,并将在缓存和RecordSet之间产生不连贯。

答案 2 :(得分:0)

您可以使用Openupgrade将数据库从openerp7迁移到odoo。 下载Openupgrade脚本并从终端运行:

python migrate.py --config=[your openerp.conf] --database=[your database] --run-migrations=8.0