如何将数据库从 Odoo 9 迁移到 Odoo 11?

How to migrate a database from Odoo 9 to Odoo 11?

我想将数据从 Odoo 9 社区迁移到 Odoo 11 社区。所以我想写一些迁移脚本。但是,目前我不知道如何编写 OpenUpgrade 这样的迁移脚本。

如果有人知道从哪里开始,请分享您的想法。

您可以通过多种方式迁​​移数据。但是你需要非常了解 Odoo 才能进行这样的迁移。

  • 原始 SQL 脚本。如果您是 SQL 专家,这可能是映射字段的好方法。考虑到根据您安装的模块,Odoo 最多可以使用 500 个表甚至更多。

  • ETL 工具,例如 Pentaho Kettle。这也是一种昂贵的方式,但它有一个 GUI。

  • 打开升级。它为主要的 Odoo 模块提供迁移脚本 (python)。您将不得不为自定义模块和第三方模块(如果他们没有)编写自己的迁移脚本。您需要执行以下步骤:

    1. 将 Odoo 9.0 al 的实例更新到最新提交
    2. 将您的自定义模块(源代码)迁移到 10.0 版本,然后迁移到 11.0 版本
    3. 分析这些模块的数据库变化,制作迁移脚本(存放在migrations文件夹中),将数据库结构从9.0版本更新到10.0版本和11.0版本。您可以在 Openupgrade project 中查看此类脚本的示例,它们经常执行 SQL 代码。
    4. 用Openupgrade迁移数据库到10.0版本解决所有冲突
    5. 用Openupgrade迁移数据库到11.0版本

但是,我从来没有使用这些方法进行过完整的迁移,因为它们非常昂贵。所以我的建议是部分迁移数据库,只迁移基本数据(如果你想要一个稳定的安装)。您甚至可以使用 csv 文件,导出这些表格并将它们重新导入到新数据库中。