跳转到主要内容

管理Odoo主要升级的CLI工具

项目描述

Gitlab CI codecov License: AGPL v3

PyPI - Python Version PyPI - Downloads GitLab last commit GitLab stars

odoo-openupgrade-wizard

Odoo Openupgrade Wizard是一个工具,帮助开发者进行Odoo社区版(原OpenERP)的重大升级。它使用Openupgrade OCA工具。(https://github.com/oca/openupgrade

此工具对于复杂的迁移非常有用

  • 迁移多个版本
  • 利用迁移来安装/卸载模块
  • 在每次迁移之间执行 SQL 请求或 Odoo Shell 脚本
  • 分析工作负载

它将创建一个迁移环境(包含所有代码),并提供帮助器来运行(并回放)迁移,直到成功为止。

  • 要开发并向库贡献,请参阅 DEVELOP.md 文件。
  • 请参阅 ROADMAP.md 文件,以了解当前的限制、错误和待办事项。
  • 作者见 CONTRIBUTORS.md 文件。

目录

安装

先决条件

  • 这些工具在 Debian 系统上运行
  • 您应该在系统上安装 Docker
  • 某些功能需要额外的包。要使用所有功能,请运行

安装

库可在 PyPI 上找到。

要安装它,只需运行

pipx install odoo-openupgrade-wizard

(请参阅 DEVELOP.md 文件中的替代安装。)

使用方法

注意:

以下所有命令行中的 odoo-openupgrade-wizard 可以替换为 oow

命令: init

oow init --initial-version=10.0 --final-version=12.0 --project-name=my-customer-10-12 --extra-repository=OCA/web,OCA/server-tools 

初始化一个文件夹,从一个 10.0 和一个 12.0 数据库进行迁移。这将生成以下结构:

filestore/ log/ 2022_03_25__23_12_41__init.log ... postgres_data/ scripts/ step_1__update__10.0/ pre-migration.sql post-migration.py step_2__upgrade__11.0/ ... step_3__upgrade__12.0/ ... step_4__update__12.0/ ... src/ env_10.0/ extra_debian_requirements.txt Dockerfile odoo.conf extra_python_requirements.txt repos.yml src/ env_11.0/ ... env_12.0/ ... config.yml modules.csv 

在此步骤中,您应该更改自动生成的文件。如果您有一个非常简单的没有自定义代码、额外存储库或依赖项的 Odoo 实例,可以使用默认文件...

注意

  • 在您的 repos.yml 文件中,保留 openupgradeserver-tools 存储库,以便使用所有库的功能。
  • 在您的 repos.yml 文件中,Odoo 项目应在 ./src/odoo 文件夹中,而 openupgrade 项目应在 ./src/openupgrade/ 文件夹中。

命令:pull-submodule

前提条件: init

如果您已经在 github / gitlab 上有一个 repos.yml 文件,同步存储库可能比手动复制粘贴 repos.yml 更方便。

在这种情况下,您可以在 config.yml 文件中的以下部分添加额外的值:

odoo_version_settings: 12.0: repo_url: url_of_the_repo_that_contains_a_repos_yml_file repo_branch: 12.0 repo_file_path: repos.yml 

然后运行以下命令:

odoo-openupgrade-wizard pull-submodule 

命令:get-code

前提条件: init

odoo-openupgrade-wizard get-code 

此命令将简单地获取运行所有迁移步骤所需的 Odoo 代码,使用 gitaggregate 工具。

代码定义在每个环境文件夹的 repos.yml 中。(或如果您使用 pull-submodule 功能,则在 repo_submodule 目录中。)

注意

  • 此步骤可能需要很长时间!

可选参数

如果您想更新某些给定版本的代码,可以提供额外的参数:

odoo-openupgrade-wizard get-code --versions 10.0,11.0 

命令:docker-build

前提条件: init + get-code

这将构建将在以下步骤中使用的本地 Docker 镜像。

在此步骤执行以下命令应显示每个版本的 Docker 镜像。

$ docker images --filter "reference=odoo-openupgrade-wizard-*" REPOSITORY TAG IMAGE ID CREATED SIZE odoo-openupgrade-wizard-image---my-customer-10-12---12.0 latest ef664c366208 2 weeks ago 1.39GB odoo-openupgrade-wizard-image---my-customer-10-12---11.0 latest 24e283fe4ae4 2 weeks ago 1.16GB odoo-openupgrade-wizard-image---my-customer-10-12---10.0 latest 9d94dce2bd4e 2 weeks ago 924MB 

可选参数

  • 如果您想为某些给定版本(重新)构建镜像,可以提供额外的参数:--versions 10.0,12.0

注意

  • 此步骤也可能需要很长时间!

命令:run

前提条件: init + get-code + build

odoo-openupgrade-wizard run\ --step 1\ --database DB_NAME 

运行具有由步骤参数定义的环境的 Odoo 实例。

如果数据库不存在,则会创建数据库。

如果禁用了 stop-after-init,Odoo 实例将在您的宿主上可用,以下 URL:https://:9069(端口号取决于您的 config.yml 文件中的 host_odoo_xmlrpc_port 设置)

可选参数

  • 您可以将 --init-modules=purchase,sale 添加以安装模块。

  • 您可以将 stop-after-init 标志添加到在安装结束时关闭进程。

命令: install-from-csv

前置条件: init + get-code + build

odoo-openupgrade-wizard install-from-csv\ --database DB_NAME 

在指定的数据库上安装由您的 modules.csv 文件中定义的模块列表。

如果数据库不存在,则会创建它。

要获取正确的 modules.csv 文件,可以使用以下查询:

psql -c "copy (select name, shortdesc from ir_module_module where state = 'installed' order by 1) to stdout csv" coopiteasy 

命令: upgrade

前置条件: init + get-code + build

odoo-openupgrade-wizard upgrade\ --database DB_NAME 

根据不同步骤从初始版本升级到最终版本。

对于每个步骤,它将:

  1. 执行该步骤的 pre-migration.sql
  2. 进行“更新所有”操作(在升级或更新上下文中)。
  3. 执行在 post-migration.py 文件中定义的通过 XML-RPC(通过 odoorpc)的脚本。

可选参数

  • 您可以通过添加 --first-step=2 从第二个步骤开始。

  • 您可以通过添加 --last-step=3 在第三个步骤结束。

命令: generate-module-analysis

前置条件: init + get-code + build

odoo-openupgrade-wizard generate-module-analysis\ --database DB_NAME --step 2 --modules MODULE_LIST 

在目标版本(通过步骤参数传递)和前一个版本之间进行分析。它将生成 OpenUpgrade 项目中存在的分析文件.txt。您还可以使用此功能在重构的情况下分析自定义 / OCA 模块在不同版本之间的差异。

命令: estimate-workload

前置条件: init + get-code

odoo-openupgrade-wizard estimate-workload 

生成一个名为 analysis.html 的 HTML 文件,其中包含有关迁移所需工作的所有信息。

  • 检查模块是否在每个版本中都存在。(通过管理模块的重命名或合并)
  • 检查已为 odoo/odoo 中的官方模块执行分析和迁移。

命令: psql

前置条件: init

odoo-openupgrade-wizard psql --database DB_NAME --command "SQL_REQUEST" 

在目标数据库上执行 SQL 请求。

可选参数

  • 如果没有提供 database,则默认使用 postgres 数据库。例如:
odoo-openupgrade-wizard psql --command "\l"; 

结果:

 List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges ------------+-------+----------+------------+------------+------------------- postgres | odoo | UTF8 | en_US.utf8 | en_US.utf8 | =c/odoo + | | | | | odoo=CTc/odoo template0 | odoo | UTF8 | en_US.utf8 | en_US.utf8 | =c/odoo + | | | | | odoo=CTc/odoo template1 | odoo | UTF8 | en_US.utf8 | en_US.utf8 | =c/odoo + | | | | | odoo=CTc/odoo test_psql | odoo | UTF8 | en_US.utf8 | en_US.utf8 | 

注意:分页器默认启用。

  • 您可以在行内传递额外的 psql 参数。
odoo-openupgrade-wizard psql
    --database=test_psql
    --command "select id, name from res_partner where name ilike '%admin%';"
    -H

结果

<table border="1">
  <tr>
    <th align="center">id</th>
    <th align="center">name</th>
  </tr>
  <tr valign="top">
    <td align="right">3</td>
    <td align="left">Administrator</td>
  </tr>
</table>
<p>(1 row)<br />
</p>

在此处查看所有选项 https://postgresql.ac.cn/docs/current/app-psql.html

命令: copydb

前提条件: init

odoo-openupgrade-wizard copydb --source DB_NAME --dest NEW_DB_NAME 

通过复制现有数据库创建Odoo数据库。

此脚本使用postgres CREATEDB WITH TEMPLATE进行复制。它还会复制文件存储。

命令: dropdb

前提条件: init

odoo-openupgrade-wizard dropdb --database DB_NAME 

删除Odoo数据库及其文件存储。

即使DB_NAME不存在,此命令也会成功执行。

命令: dumpdb

前提条件: init

odoo-openupgrade-wizard dumpdb --database DB_NAME --database-path DATABASE_PATH --filestore-path FILESTORE_PATH 

将数据库DB_NAME导出到DATABASE_PATH,并将与DB_NAME相关的文件存储导出到FILESTORE_PATH。有关备份文件的格式,请查看--database-format--filestore-format

警告: DATABASE_PATH应该是项目路径的子目录,以便PostgreSQL容器能够写入转储文件。例如,项目路径是/path/to/myproject(在此处运行init命令的地方),则DATABASE_PATH可以是/path/to/myproject的任何子目录。

可选参数

项目详细信息


下载文件

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

源分布

odoo_openupgrade_wizard-1.0.1.tar.gz (42.4 kB 查看散列)

上传时间

构建分布

odoo_openupgrade_wizard-1.0.1-py3-none-any.whl (54.9 kB 查看散列)

上传时间 Python 3

由以下支持