2015-10-26 73 views
0

我正在尝试将odoo安装从8.0升级到9.0。我到目前为止已经做的是以下几点:从生产系统 如何将odoo 8升级到odoo 9数据库?

  • 在我目前的系统安装在备份数据库作为测试

    • 备份odoo数据库
    • 复制odoo文件夹中的文件夹在我的系统
    • 检查,如果一切正常。有用!
    • 更新到最新的v8.0版本,仍然有效
    • 做了git checkout 9.0后跟git pull
    • 开始odoo 9.0命令./openerp-server -d testDB -u all

    此命令会切断与下面的错误和不更新我的数据库:

    LINE 1: select model, transient from ir_model where state='manual' 
            ^
    , in query select model, transient from ir_model where state=%s 
    2015-10-26 00:37:29,823 4501 CRITICAL testDB openerp.service.server: 
    Failed to initialize database `testDB`. 
    Traceback (most recent call last): 
        File "/opt/odoo/openerp/service/server.py", line 885, in preload_registries 
        registry = RegistryManager.new(dbname, update_module=update_module) 
    File "/opt/odoo/openerp/modules/registry.py", line 385, in new 
    openerp.modules.load_modules(registry._db, force_demo, status, update_module) 
    File "/opt/odoo/openerp/modules/loading.py", line 279, in load_modules 
    loaded_modules, processed_modules = load_module_graph(cr, graph, status, perform_checks=update_module, report=report) 
    File "/opt/odoo/openerp/modules/loading.py", line 136, in load_module_graph 
    registry.setup_models(cr, partial=True) 
    File "/opt/odoo/openerp/modules/registry.py", line 185, in setup_models 
    cr.execute('select model, transient from ir_model where state=%s', ('manual',)) 
    File "/opt/odoo/openerp/sql_db.py", line 139, in wrapper 
        return f(self, *args, **kwargs) 
    File "/opt/odoo/openerp/sql_db.py", line 215, in execute 
        res = self._obj.execute(query, params) 
    
    ProgrammingError: column "transient" does not exist 
    LINE 1: select model, transient from ir_model where state='manual' 
    

    是否有我也要跟着升级数据库的任何步骤或者一切都是手工完成的?如果是,我该怎么办?显然它失败了,因为我的数据库中没有特定的列。但是有没有更新脚本,因为我担心,如果我改变这个,会有下一个等待我的错误。

    在此先感谢。

  • 回答

    3

    您可以通过转至link 来要求odoo公​​司为您完成该任务。但他们会为此收取费用。如果你能做到这一点你自己在这里是如何做到这一点的文档, https://doc.therp.nl/openupgrade/intro.html

    选项2:我们可以使用的pgAdmin(PostgreSQL的GUI工具)。只是选择你的数据库名称,并在顶部,你可以看到启用SQL,点击它并发出一个sql查询来显示所有数据(你必须知道你想要检索的表名),然后你可以导出它。导出的文件包含所有带有列标题的数据,我们可能必须根据odoo9 DB.Once完成后,选择odoo9数据库,右键点击要导入数据的表名,并选择导入选项。它可能需要一段时间,它应该给消息“数据导入成功”。

    +0

    谢谢你的链接!我想现在我理解了更新Odoo的过程。你有从8.0到9.0更新的经验吗?我只有一个自定义模块,其余是标准的Odoo模块。 – Freddy

    +0

    好的,我刚刚发现,他们目前正在使用9.0迁移脚本。再次感谢您的回答,我将标记为正确的,因为这似乎是正确的方式去为我。 – Freddy

    +0

    您也可以使用一些ETL工具 – ChesuCR

    2

    我在Github找到了答案。

    关键是要创建一个名为transient场是Boolean与表ir_model默认值false

    正如我所料,这不是一个完整的解决方案,因为数据库还有其他问题需要调整。

    0

    您试图在Odoo 9.0上运行Odoo 8.0数据库。

    'transient'列位于代码库中,而不是8.0代码库中。因此,8.0数据库正在9.0代码库上运行。因此,数据库尚未正确升级。

    正如前面的答案所述。你可以让Odoo去做,也可以自己做。