【问题标题】:How to upgrade odoo 8 to odoo 9 database?如何将 odoo 8 升级到 odoo 9 数据库?
【发布时间】:2016-01-25 00:37:21
【问题描述】:

我正在尝试将 odoo 安装从 8.0 升级到 9.0。到目前为止,我所做的如下:

  • 从生产系统备份 odoo 数据库
  • 在我当前的系统中安装了备份数据库作为测试
  • 复制了我系统文件夹中的odoo文件夹
  • 检查,如果一切正常。有效!
  • 更新到最新的 v8.0 版本,依然可以使用
  • 先是git checkout 9.0,然后是git pull
  • 使用命令./openerp-server -d testDB -u all 启动odoo 9.0

此命令因以下错误而中断,并且不会更新我的数据库:

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'

是否有任何我必须遵循的步骤来升级数据库或必须手动完成所有操作?如果是,我该怎么办?显然它失败了,因为我的数据库中不存在特定的列。但是是否有任何更新脚本,因为我担心,如果我更改它,将会有下一个错误等着我。

提前致谢。

【问题讨论】:

标签: odoo odoo-9


【解决方案1】:

您可以通过访问link 要求 odoo 公司为您完成该任务 .但他们会为此收费。如果你可以自己做,这里是关于如何做的文档, https://doc.therp.nl/openupgrade/intro.html

选项2:我们可以使用pgadmin(postgresql gui工具)。只需选择您的数据库名称,在顶部您可以看到启用了sql,单击它并发出sql查询以显示所有数据(您必须知道表名你想检索)之后你可以导出它。导出的文件包含所有带有列标题的数据,我们可能需要根据odoo9 DB重新排列列。完成后选择odoo9数据库,右键单击你的表名想要导入数据并选择导入选项。这可能需要一段时间,它应该给出“数据导入成功”的消息。

【讨论】:

  • 感谢您的链接!我想现在我了解了更新 Odoo 的过程。你有从 8.0 升级到 9.0 的经验吗?我只有一个自定义模块,其余的是标准 Odoo 模块。
  • 好的,我刚刚发现,他们目前正在处理 9.0 迁移脚本。再次感谢您的回答,我会将其标记为正确,因为这对我来说似乎是正确的方式。
  • 你也可以使用一些ETL工具
  • 嗨,我有 odoo 迁移问题。请检查此链接。 stackoverflow.com/questions/56470582/…@弗雷迪
【解决方案2】:

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

“transient”列在 9.0 的代码库中,而不在 8.0 的代码库中。因此,8.0 数据库在 9.0 代码库上运行。因此,数据库没有正确升级。

如上一个答案所述。你可以让 Odoo 来做,也可以自己做。

【讨论】:

    【解决方案3】:

    我在Github找到了答案。

    诀窍是创建一个名为transient 的字段,即Boolean,在表ir_model 中使用默认值false

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

    【讨论】:

      猜你喜欢
      • 2016-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-30
      • 2019-04-16
      • 2015-08-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多