用于将Odoo模块从一个版本迁移到另一个版本的小工具
项目描述
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 |
可能的值:DEBUG,INFO,WARNING等。 |
--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日)
首次发布
鸣谢
贡献者
Sylvain LE GAL (https://www.twitter.com/legalsylvain)
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
构建分布
odoo-module-migrator-0.4.0.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 5332a520aed10afe937fd8e526d7a76aced7f93f198da67d67e707eebe9ece73 |
|
| MD5 | 36b7258f819df4945787950e1aff070e |
|
| BLAKE2b-256 | 92b44bcf9caebd6eb41ecb80a5fb035de3396bd8ab97027e7715c7898100be41 |
odoo_module_migrator-0.4.0-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 84e4cb3dc8a86648345cddf272b11629a960f688075ce60be0e14a37cab27b7e |
|
| MD5 | bb5381dae80b28f4a9372fdba345af4d |
|
| BLAKE2b-256 | 54ae8458207f1c522fd9c4c2a5c58c7760d5226f7af2541bd9c37b803fe1553a |