升级¶
An upgrade is the process of moving your database from an older version to a newer supported version (e.g., Odoo 14.0 to Odoo 16.0). Frequently upgrading is essential as each version comes with new and improved features, bug fixes, and security patches.
滚动发布流程允许 Odoo 云端版客户在新版本发布后,立即通过发送给数据库管理员的消息提示,直接升级数据库。只有在自动测试期间未发现问题时,才会发送升级邀请。

强烈建议手动 先测试升级。点击 我想先进行测试 会重定向到数据库管理器 <https://www.odoo.com/my/databases/>`_,在那里可以请求升级测试数据库并检查是否有任何差异。
**不建议**在未进行测试的情况下点击 立即升级,因为这会立即触发实时生产数据库升级。
如果滚动发布程序检测到升级存在问题,则会停用升级,直到问题得到解决。
升级不包括:
降级到 Odoo 以前的版本
Switching editions (e.g., from Community to Enterprise)
Changing hosting type (e.g., from on-premise to Odoo Online)
从另一个企业资源规划系统迁移到 Odoo
警告
如果您的数据库包含自定义模块,则在您的自定义模块版本可用于 Odoo 目标版本之前,数据库无法升级。对于维护自己自定义模块的客户,我们建议通过 请求升级数据库 同时 :doc:` 升级自定义模块的源代码</developer/howtos/upgrade_custom_db>` 来并行处理该过程。
升级概述¶
请求升级测试数据库(请参阅 获取升级的测试数据库)。
如果适用,请升级自定义模块的源代码,使其与新版本的 Odoo 兼容(请参阅 Upgrade a customized database)。
彻底测试升级后的数据库(请参阅 测试新版数据库)。
通过 支持页面 向 Odoo 报告测试过程中遇到的任何问题。
一旦所有问题都得到解决,并且确信升级后的数据库可以作为主数据库使用而不会出现任何问题,就可以计划升级生产数据库。
请求升级生产数据库,使其在完成升级过程所需的时间内不可用(参见 升级生产数据库)。
通过`支持`页面 <https://odoo.com/help?stage=post_upgrade>`__ 向 Odoo 报告升级过程中遇到的任何问题。
获取升级后的测试数据库¶
升级页面 是申请升级数据库的主要平台。不过,根据托管类型的不同,您可以通过命令行(内置)、Odoo 在线数据库管理器 或您的`Odoo.sh 项目 <https://odoo.sh/project>`_进行升级。
注解
升级平台遵循与 Odoo.com 其他服务相同的 `隐私政策<https://www.odoo.com/privacy>`_。访问 一般数据保护条例
页面<https://www.odoo.com/gdpr>`_,了解更多有关Odoo 如何处理您的数据和隐私的信息。
Odoo 在线版数据库可通过`数据库管理器 <https://odoo.com/my/databases>`_手动升级。
数据库管理器会显示与用户账户相关的所有数据库。不在最新版本 Odoo 上的数据库名称旁边会显示一个圆圈图标中的箭头,表示这些数据库可以升级。

点击**圆圈中的箭头**图标,启动升级程序。在弹出窗口中,填写:
The version of Odoo you want to upgrade to, usually the latest version
应收到升级数据库链接的**电子邮件**地址
The Purpose of the upgrade, which is automatically set to Test for your first upgrade request

数据库名称旁边会显示 正在升级 标记,直至完成。一旦升级成功,就会向提供的地址发送一封电子邮件,其中包含升级后测试数据库的链接。也可以通过点击数据库名称前的下拉箭头,从数据库管理器访问数据库。

Odoo.sh 与升级平台整合,简化了升级过程。

然后将**最新的生产日自动备份**发送到 升级平台。
一旦升级平台完成备份升级并将其上传到分支,它就会进入**特殊模式**:每次在分支上**推送提交**时,都会对升级后的备份进行**恢复操作**,并**更新所有自定义模块**。这样,您就可以在升级数据库的原始副本上测试自定义模块。升级过程的日志文件可通过 ~/logs/upgrade.log
在新升级的暂存构建中找到。
重要
在安装了自定义模块的数据库中,在执行升级之前,其源代码必须与目标版本的 Odoo 一致。如果没有自定义模块,将跳过“提交时更新”模式,升级后的数据库将在从升级平台传输过来后立即构建,并退出升级模式。
请查看 Upgrade a customized database 页面获取更多信息。
在数据库所在的计算机上输入以下命令行,即可启动标准升级程序:
$ python <(curl -s https://upgrade.odoo.com/upgrade) test -d <your db name> -t <target version>
使用以下命令可以显示一般帮助和主要命令:
$ python <(curl -s https://upgrade.odoo.com/upgrade) --help
也可通过`升级页面 <https://upgrade.odoo.com/>`_ 申请升级测试数据库。
重要
在安装了自定义模块的数据库中,在执行升级之前,其源代码必须与目标版本的 Odoo 一致。请查看 Upgrade a customized database 页面了解更多信息。
注解
出于安全考虑,只有提交升级申请的人才能下载。
由于存储原因,数据库副本在提交升级服务器时没有文件存储。因此,升级后的数据库不包含生产文件库。
在还原升级数据库之前,必须将其文件存储与生产文件存储合并,以便在与新版本相同的条件下执行测试。
升级后的数据库包含:
包含升级数据库的`dump.sql`文件
`文件库`文件夹,包含从数据库内记录提取到附件(如有)的文件,以及目标 Odoo 版本的新标准 Odoo 文件(如新图像、图标、支付提供商徽标等)。该文件夹应与生产文件库合并,以获得完整的升级文件库。
注解
如果您希望多次测试升级,可以申请多个测试数据库。
注解
升级请求完成后,升级成功邮件会附上一份升级报告,属于 “管理/设置” 组的用户可在内部讨论应用程序中查看该报告。该报告提供了有关新版本所引入更改的重要信息。
测试新版数据库¶
有必要花一些时间测试升级后的测试数据库,以确保在升级上线后,不会因为视图、行为或错误信息的变化而导致日常活动无法进行。
注解
测试数据库被中性化,一些功能被禁用,以防止它们影响生产数据库:
计划的操作已禁用。
通过将现有邮件服务器存档并添加一个假服务器来禁用外发邮件服务器。
支付提供商和快递公司将重置到测试环境中。
银行同步已禁用。如果您想测试同步,请联系银行同步提供商获取沙盒凭证。
强烈建议尽可能多地测试业务流程,以确保其正常运行,并进一步熟悉新版本。
基本测试清单
是否存在在测试数据库中停用但在生产数据库中激活的视图?
您的常规视图是否仍能正确显示?
您的报告(发票、销售订单等)是否正确生成?
您的网站页面是否正常运行?
您是否能够创建和修改记录?(销售订单、发票、采购、用户、联系人、公司等)。
您的邮件模板有问题吗?
已保存的翻译有问题吗?
您的搜索筛选器是否仍然存在?
能否导出数据?
在产品目录中随机抽取一个产品,比较其测试数据和生产数据,以验证所有内容(产品类别、售价、成本价、供应商、账户、路线等)是否相同。
购买本产品(采购应用程序)。
确认接收该产品(库存应用程序)。
检查生产数据库(库存应用程序)中接收该产品的路径是否相同。
向随机客户销售该产品(销售应用程序)。
打开客户数据库(通讯录应用程序),选择客户(或公司)并检查其数据。
运送该产品(库存应用程序)。
检查运送该产品的路线是否与生产数据库(库存应用程序)中的路线相同。
验证客户发票(开票或会计应用程序)。
将发票记入贷方(开具贷项凭单)并检查其是否与生产数据库中的一致。
查看报告结果(会计应用程序)。
随机检查您的税款、货币、银行账户和财政年度(会计应用程序)。
在线订购(网站应用程序),从在商店中选择产品到结账,检查所有操作是否与生产数据库中的一致。
本列表**并非**详尽无遗。请根据您对 Odoo 的使用情况,将示例扩展到其他应用程序。
如果您在测试升级后的测试数据库时遇到问题,可以通过 支持`页面 选择与测试升级相关的选项,请求 Odoo 的帮助。无论如何,在升级生产数据库之前,必须报告测试过程中遇到的任何问题,以便解决问题。
在测试过程中,您可能会遇到标准视图、功能、字段和模型之间的重大差异。这些更改无法逐一还原。但是,如果新版本引入的更改破坏了定制,则您的定制模块维护者有责任使其与新版本的 Odoo 兼容。
小技巧
不要忘记测试:
与外部软件(电子数据交换、应用程序接口等)整合
不同应用程序之间的工作流程(电子商务在线销售、将潜在客户转化为销售订单、交付产品等)
数据导出
自动动作
在表单视图的操作菜单中执行服务器操作,以及在列表视图中选择多个记录执行服务器操作
升级生产数据库¶
一旦完成:ref:测试 <upgrade/test_your_db>
,并确信升级后的数据库可作为主数据库使用,而不会出现任何问题,就可以计划启用日。您可以与 Odoo 的升级支持分析师协调计划,他们可通过`支持`页面 <https://odoo.com/help>`__ 与您联系。
在升级期间,您的生产数据库将不可用。因此,我们建议在数据库使用量最小的时候计划升级。
由于标准升级脚本和您的数据库都在不断变化,因此建议经常申请另一个升级测试数据库,以确保升级过程仍然成功,尤其是在升级需要很长时间才能完成的情况下。还建议在升级生产数据库的前一天充分演练升级过程。
重要
在没有进行首次测试的情况下投入生产可能会导致:
用户无法适应变化和新功能
业务中断(例如,不再可能验证操作)
糟糕的客户体验(例如,电子商务网站无法正常运行)
升级生产数据库的过程与升级测试数据库类似,但有几处例外。
该过程类似于 :ref:` 获取升级的测试数据库 <upgrade/request-test-database>`,只是目的选项必须设置为 生产`而不是:guilabel:`测试。
警告
一旦请求升级,数据库将不可用,直到升级完成。一旦升级完成,就无法恢复到以前的版本。
该过程类似于:ref:在:guilabel:`生产`分支上获取升级的测试数据库 <upgrade/request-test-database>
。

**一旦分支上有新的提交,就会触发**进程。这样,升级过程就能与定制模块升级源代码的部署同步。如果没有自定义模块,升级过程会立即触发。
重要
在整个过程中,数据库都不可用。如果出现任何问题,平台会自动恢复升级,就像常规升级一样。如果升级成功,则会创建升级前的数据库备份。
自定义模块的更新必须成功,才能完成整个升级过程。在生产中尝试升级之前,请确保暂存升级的状态为 成功。有关如何升级自定义模块的更多信息,请参阅 Upgrade a customized database。
将数据库升级到生产数据库的指令与升级测试数据库的指令类似,只是参数 test
必须用 生产
代替:
$ python <(curl -s https://upgrade.odoo.com/upgrade) production -d <your db name> -t <target version>
也可通过`升级`页面 <https://upgrade.odoo.com/>`_ 申请升级生产数据库。一旦上传了数据库,对生产数据库的任何修改都将**不会**出现在升级后的数据库中。因此,我们建议在升级过程中不要使用它。
重要
为生产目的申请升级数据库时,提交的副本不带文件库。因此,在部署新版本之前,必须将升级后的数据库文件存储与生产文件存储合并。
如果您的生产数据库出现问题,您可以通过 支持
页面 <https://odoo.com/help?stage=post_upgrade>`__ 选择与生产升级相关的选项,请求 Odoo 的帮助。
服务水平协议(SLA)¶
使用 Odoo 企业版,将数据库升级到最新版本 Odoo 完全 免费,包括为纠正升级后数据库中潜在差异所需的任何支持。
有关企业许可证中包含的升级服务的信息,请参阅 Odoo 企业订阅协议。本节将说明您可以期待哪些升级服务。
服务水平协议涵盖的升级服务¶
在 Odoo 云平台(Odoo 云端版和 Odoo.sh)上托管的数据库或自行托管的数据库(On-Premise)可随时享受升级服务:
升级所有**标准应用程序**;
升级所有使用定制应用程序**创建的**定制功能,前提是仍安装定制应用程序,且相关订阅仍处于激活状态;以及
升级定制维护订购**所涵盖的所有**开发和定制。
升级服务仅限于对数据库(标准模块和数据)进行技术转换和调整,使其与升级目标版本兼容。
《服务水平协议》未涵盖的升级服务¶
**不包括**以下与升级有关的服务:
在升级时**清除**已有的数据和配置;
升级内部或第三方**(包括 Odoo 合作伙伴)创建的**定制模块;
添加到标准模块的行代码,即在定制应用程序之外创建的定制功能、手动输入的代码,以及 :ref:` 使用 Python 代码 <studio/automated-actions/action>` 的自动操作;以及
关于使用升级版功能和工作流程的**培训**。