跳转到主要内容

用于将Odoo模块从一个版本迁移到另一个版本的小工具

项目描述

License: AGPL-3 Python support: 3.6 https://app.travis-ci.com/OCA/odoo-module-migrator.svg?branch=master

odoo-module-migrator

odoo-module-migrator 是一个python3库,允许您自动迁移模块代码以使其与新版本的Odoo兼容。例如

  • __openerp__.py 文件重命名为 __manifest__.py

  • 自V11.0起删除 # -*- 编码: utf-8 -*-

  • openerp 导入替换为 odoo 导入

  • 删除 migrations 文件夹

  • <act_window> 更改为 <record model="ir.actions.window">

此库将

  • (可选)从旧分支获取提交(如果启用了format-patch)

  • 自动应用更改。(重命名、替换等。)

  • 提交您的更改。

  • 如果您的代码属于过时的代码模式,请在日志中显示警告或错误。

本项目关于代码迁移。如果您正在寻找Odoo版本之间的数据库数据迁移,请查看https://github.com/OCA/OpenUpgrade项目。

INFO日志

它提到库会自动更改某些内容。按照先验知识,您无需做任何事情。例如,从8.0迁移到较新版本

12:38:54 INFO Renaming file: '/my_module/__openerp__.py' by '/my_module/__manifest__.py'

WARNING日志

它提到您需要检查某些内容。为了使模块工作,可能需要做一些事情。例如

19:37:55 WARNING Replaced dependency of 'account_analytic_analysis' by 'contract' (Moved to OCA/contract)

ERROR日志

它提到您需要在代码中更改某些内容。如果不这样做,模块将肯定无法工作(无法安装或执行时产生错误)

例如,如果您有一个依赖于已从较新版本中消失的‘account_anglo_saxon’的8.0模块,以下日志将被显示

12:38:54 ERROR Depends on removed module 'account_anglo_saxon'

开发和改进

如果您想改进或完善这个库,请阅读DEVELOP.rst文件以及“路线图/已知问题”部分。

安装

pip3 install odoo-module-migrator

用法

使用格式补丁命令

(由OCA推荐)

如果您想将Odoo模块从8.0版本迁移到12.0版本,例如OCA "pos"存储库中的pos_order_pricelist_change模块。

git clone https://github.com/OCA/pos -b 12.0
cd pos
odoo-module-migrate
    --directory             ./
    --modules               pos_order_pricelist_change
    --init-version-name     8.0
    --target-version-name  12.0
    --format-patch

不使用格式补丁命令

(主要针对您的自定义模块)

如果您已基于您的10.0分支创建了一个新的分支(例如12.0),您可以运行以下命令

odoo-module-migrate
    --directory             /path/to/repository
    --modules               module_1,module_2,module_3
    --init-version-name     10.0
    --target-version-name   12.0

此工具将为每个模块执行更改。

可用参数

名称

快捷键

选项

描述

--directory

-d

默认: ./

包含要迁移的模块的本地文件夹。

--init-version-name

-i

必需

您要迁移的模块的初始版本。

--target-version-name

-t

默认: 最新Odoo版本

您要迁移的目标版本。

--modules

-m

默认: 目录中所有模块

要迁移的模块。注意如果启用了format-patch选项,您只需提供单个模块。

--format-patch

-fp

默认禁用

使用git format-patch命令恢复代码。

--remote-name

-rn

默认: origin

用于format-patch命令的主要远程名称。

--log-level

-ll

默认: INFO

可能的值:DEBUGINFOWARNING等。

--log-path

-lp

默认: False

如果设置,日志将不会在屏幕上显示,但会存储在文件中

--no-commit

-nc

默认: commit

如果设置,库将不会git add和git commit更改。

路线图/已知问题

  • 在存在许多<data>出现的情况下,将失败替换标签<openerp><data><odoo>。我们可以通过使用lxml库而不是正则表达式来修复此问题。

  • 如果仓库中存在预提交,则添加对pre-commit的调用。

更改

0.3.2 (2019年12月4日)

  • [REM] 删除黑色调用。(在路线图中添加对更通用的工具pre-commit的调用)

  • [IMP] 在git commit中添加–no-verify选项,以避免在存在预提交时失败

  • [REF] 重构_execute_shell函数

0.2.0 (2019年10月13日)

  • 第二次发布

0.1.4 (2019年10月12日)

  • 测试

[ADD] 测试

  • 框架

[ADD] --file-path选项。[ADD] _DEPRECATED_MODULES语法。

  • 迁移脚本

[修复] 正则表达式语法错误,移除 Python 2 头文件 [重要] 所有从 8.0 到 13.0 的步骤的第一版发布

0.1.3 (2019年10月11日)

  • 框架

[新增] --no-commit 选项,禁用 git add 和 git commit 调用 [修复] 如果迁移有多个步骤,则不要多次提交。 [参考] 删除无用的注释代码 [参考] 创建 _commit_changes() 和 _replace_in_file() 函数

  • 元数据

[修复] setup.py 中项目的 github url [新增] Travis 文件 + coveralls 链接 [新增] test_requirements.txt

  • 迁移脚本

[新增] 12.0 到 13.0,如果发现对 web_settings_dashboard 的引用,则添加警告。感谢 @yelizariev [新增] 在清单文件中提高版本号 [新增] 设置 installable 为 True

0.1.2 (2019年10月10日)

  • 首次发布

鸣谢

作者

贡献者

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

odoo-module-migrator-0.4.0.tar.gz (36.9 kB 查看哈希值)

上传时间 源代码

构建分布

odoo_module_migrator-0.4.0-py3-none-any.whl (43.9 kB 查看哈希值)

上传时间 Python 3

支持者