升级¶
升级涉及将数据库从较旧版本迁移到较新的受支持版本(例如,从 Odoo 15.0 升级到 Odoo 17.0)。定期升级至关重要,因为每个版本都提供了新功能、错误修复和安全补丁。强烈建议使用 受支持的版本。每个主要版本的支持期限为三年。
根据所使用的托管类型和Odoo版本,数据库升级可能是 强制性的。
在最初三年的支持期结束后,您将再有两年时间来完成升级。当需要升级时,您将收到通知。
您可以无限期地停留在同一版本上,即使这不被推荐。请注意,版本差距越小,升级应该越容易。
您将在数据库升级自动执行前的几周内收到通知。只要未到截止日期,您都可以控制这一过程。
具体来说,Odoo 的升级团队会对每个需要升级的数据库进行静默测试升级。如果测试成功且耗时少于 20 分钟,您可以直接从数据库触发升级。如果测试失败,您可以使用 数据库管理器 测试升级。
当您被邀请进行升级时,强烈建议首先 请求一个升级后的测试数据库 ,并花时间 测试 它。
如果在指定截止日期前未采取任何行动,将自动触发升级至下一版本。
升级不包括以下内容:
警告
如果您的数据库包含自定义模块,则在您的自定义模块版本适用于目标版本的 Odoo 之前,无法进行升级。对于维护自己自定义模块的客户,我们建议通过 请求升级数据库 同时 升级自定义模块的源代码 来并行化此过程。
升级概述¶
请求升级测试数据库(参见 获取升级的测试数据库)。
如果适用,请升级自定义模块的源代码,使其与新版本的 Odoo 兼容(请参阅 升级自定义数据库)。
彻底测试升级后的数据库(参见 测试新版本的数据库)。
将测试过程中遇到的任何问题报告给 Odoo,方法是访问 支持页面并选择 “与我未来升级相关的问题(我正在测试升级)”。
一旦所有问题都得到解决,并且确信升级后的数据库可以作为主数据库使用而不会出现任何问题,就可以计划升级生产数据库。
请求对生产数据库进行升级,在此过程中数据库将暂时不可用(请参阅 升级生产数据库)。
在升级到 Odoo 过程中遇到的任何问题,请前往 支持页面并选择“与我的升级相关的问题(生产环境)” 进行报告。
获取升级后的测试数据库¶
升级页面 是请求升级数据库的主要平台。然而,根据托管类型的不同,您可以通过命令行(本地部署)、Odoo Online 的 数据库管理器 或您的 Odoo.sh 项目 进行升级。
注解
升级平台遵循与其他Odoo.com服务相同的 隐私政策 。访问 通用数据保护条例页面 了解更多关于Odoo如何处理您的数据和隐私的信息。
Odoo Online 数据库可以通过 数据库管理器 手动升级。
数据库管理器会显示与用户账户相关的所有数据库。不在最新版本 Odoo 上的数据库名称旁边会显示一个圆圈图标中的箭头,表示这些数据库可以升级。
点击 圆圈中的箭头 图标以开始升级过程。在弹出的窗口中填写:
您要升级到的 Odoo 版本,通常是最新版本
应该接收升级数据库链接的 电子邮件 地址
升级的 目的 ,在您的首次升级请求中会自动设置为 测试
数据库名称旁边会显示 正在升级 标记,直至完成。一旦升级成功,就会向提供的地址发送一封电子邮件,其中包含升级后测试数据库的链接。也可以通过点击数据库名称前的下拉箭头,从数据库管理器访问数据库。
Odoo.sh 与升级平台整合,简化了升级过程。
**最新的生产每日自动备份**随后会被发送到升级平台。
一旦升级平台完成备份的升级并将其上传到分支后,它将进入一个 特殊模式:每次在分支上 推送提交 时,都会执行升级备份的 恢复操作 以及 所有自定义模块的更新。这使您可以在升级后的数据库的原始副本上测试您的自定义模块。升级过程的日志文件可以在您新升级的暂存构建中找到,路径为 ~/logs/upgrade.log
。
重要
在安装了自定义模块的数据库中,在执行升级之前,其源代码必须与目标版本的 Odoo 一致。如果没有自定义模块,将跳过“提交时更新”模式,升级后的数据库将在从升级平台传输过来后立即构建,并退出升级模式。
请查看 升级自定义数据库 页面获取更多信息。
在数据库所在的计算机上输入以下命令行,即可启动标准升级程序:
$ 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
可以通过 升级页面 请求升级后的测试数据库。
重要
在安装了自定义模块的数据库中,在执行升级之前,其源代码必须与目标版本的 Odoo 一致。请查看 升级自定义数据库 页面了解更多信息。
注解
出于安全考虑,只有提交升级申请的人才能下载。
由于存储原因,数据库副本在提交升级服务器时没有文件存储。因此,升级后的数据库不包含生产文件库。
在恢复升级后的数据库之前,必须将其文件存储与生产文件存储合并,以便能够在与新版本相同的条件下进行测试。
升级后的数据库包含:
包含升级数据库的`dump.sql`文件
`文件库`文件夹,包含从数据库内记录提取到附件(如有)的文件,以及目标 Odoo 版本的新标准 Odoo 文件(如新图像、图标、支付提供商徽标等)。该文件夹应与生产文件库合并,以获得完整的升级文件库。
注解
如果您希望多次测试升级,可以申请多个测试数据库。
注解
升级请求完成后,升级成功邮件会附上一份升级报告,属于 “管理/设置” 组的用户可在内部讨论应用程序中查看该报告。该报告提供了有关新版本所引入更改的重要信息。
测试新版数据库¶
测试升级后的测试数据库至关重要,以确保在升级上线后,您不会因为视图、行为的变化或错误信息而陷入日常活动中。
注解
测试数据库被中性化,一些功能被禁用,以防止它们影响生产数据库:
计划的操作已禁用。
通过将现有邮件服务器存档并添加一个假服务器来禁用外发邮件服务器。
支付提供商和快递公司将重置到测试环境中。
银行同步已禁用。如果您想测试同步,请联系银行同步提供商获取沙盒凭证。
强烈建议尽可能多地测试业务流程,以确保其正常运行,并进一步熟悉新版本。
基本测试清单
是否存在在测试数据库中停用但在生产数据库中激活的视图?
您的常规视图是否仍能正确显示?
您的报告(发票、销售订单等)是否正确生成?
您的网站页面是否正常运行?
您是否能够创建和修改记录?(销售订单、发票、采购、用户、联系人、公司等)。
您的邮件模板有问题吗?
已保存的翻译有问题吗?
您的搜索筛选器是否仍然存在?
能否导出数据?
在产品目录中随机抽取一个产品,比较其测试数据和生产数据,以验证所有内容(产品类别、售价、成本价、供应商、账户、路线等)是否相同。
购买本产品(采购应用程序)。
确认接收该产品(库存应用程序)。
检查生产数据库(库存应用程序)中接收该产品的路径是否相同。
向随机客户销售该产品(销售应用程序)。
打开客户数据库(通讯录应用程序),选择客户(或公司)并检查其数据。
运送该产品(库存应用程序)。
检查运送该产品的路线是否与生产数据库(库存应用程序)中的路线相同。
验证客户发票(开票或会计应用程序)。
将发票记入贷方(开具贷项凭单)并检查其是否与生产数据库中的一致。
查看报告结果(会计应用程序)。
随机检查您的税款、货币、银行账户和财政年度(会计应用程序)。
在线订购(网站应用程序),从在商店中选择产品到结账,检查所有操作是否与生产数据库中的一致。
此列表 并非 详尽无遗。根据您对 Odoo 的使用情况,将此示例扩展到您的其他应用程序中。
如果在测试升级后的测试数据库时遇到问题,您可以通过访问 支持页面并选择 “与我的未来升级相关的问题(我正在测试升级)” 来请求 Odoo 的帮助。无论如何,在升级生产数据库之前,报告测试过程中遇到的任何问题以进行修复是至关重要的。
在测试过程中,您可能会遇到标准视图、功能、字段和模型之间的重大差异。这些更改无法逐一还原。但是,如果新版本引入的更改破坏了定制,则您的定制模块维护者有责任使其与新版本的 Odoo 兼容。
小技巧
不要忘记测试:
与外部软件(电子数据交换、应用程序接口等)整合
不同应用程序之间的工作流程(电子商务在线销售、将潜在客户转化为销售订单、交付产品等)
数据导出
自动化操作
在表单视图的操作菜单中执行服务器操作,以及在列表视图中选择多个记录执行服务器操作
升级生产数据库¶
一旦 测试 完成,并且您确信升级后的数据库可以毫无问题地用作主数据库,就是时候规划上线日期了。
在升级期间,您的生产数据库将不可用。因此,我们建议在数据库使用量最小的时候计划升级。
随着标准升级脚本和您的数据库不断演进,建议经常请求另一个升级后的测试数据库,以确保升级过程仍然成功,尤其是在完成升级需要较长时间的情况下。建议在生产数据库升级前一天完全演练升级过程。
重要
在没有进行测试的情况下进入生产环境可能会导致:
用户无法适应变化和新功能
业务中断(例如,不再可能验证操作)
糟糕的客户体验(例如,电子商务网站无法正常运行)
升级生产数据库的过程与升级测试数据库类似,但有一些例外情况。
该过程类似于 获取升级后的测试数据库,不同之处在于目的选项必须设置为 生产 而不是 测试。
警告
一旦请求升级,数据库将不可用,直到升级完成。一旦升级完成,就无法恢复到以前的版本。
该过程类似于在 生产 分支上 获取升级后的测试数据库。
该过程 在分支上有新提交时立即触发。这使得升级过程能够与自定义模块升级后的源代码部署同步。如果没有自定义模块,升级过程会立即触发。
重要
在整个过程中,数据库都不可用。如果出现任何问题,平台会自动恢复升级,就像常规升级一样。如果升级成功,则会创建升级前的数据库备份。
自定义模块的更新必须成功,才能完成整个升级过程。在生产中尝试升级之前,请确保暂存升级的状态为 成功。有关如何升级自定义模块的更多信息,请参阅 升级自定义数据库。
将数据库升级到生产数据库的指令与升级测试数据库的指令类似,只是参数 test
必须用 生产
代替:
$ python <(curl -s https://upgrade.odoo.com/upgrade) production -d <your db name> -t <target version>
可以通过 升级页面 请求升级生产数据库。
数据库上传后,生产数据库的任何修改 不会 出现在升级后的数据库中。这就是为什么我们建议在升级过程中不要使用它。
重要
为生产目的申请升级数据库时,提交的副本不带文件库。因此,在部署新版本之前,必须将升级后的数据库文件存储与生产文件存储合并。
如果您的生产数据库出现问题,您可以通过访问 支持页面并选择”与我未来升级相关的问题(我正在测试升级)” 来请求 Odoo 的协助。
服务级别协议(SLA)¶
使用Odoo企业版,将数据库升级到最新版本的Odoo是 免费 的,包括升级数据库中可能出现的任何差异的支持。
有关企业许可证中包含的升级服务的信息,请参阅 Odoo企业订阅协议 。然而,本节澄清了您可以期望的升级服务。
升级服务包括在SLA范围内¶
托管在Odoo的云平台(Odoo Online和Odoo.sh)或自托管(On-Premise)的数据库可以随时从升级服务中受益,包括以下方面:
升级所有 标准应用程序 ;
升级所有使用 Studio应用程序创建的自定义内容 ,只要Studio仍然安装并且相应的订阅仍然有效;以及
升级所有 由定制维护订阅覆盖的开发和定制 。
升级服务仅限于对数据库(标准模块和数据)进行技术转换和适应,以使其与升级的目标版本兼容。
未包含在服务级别协议(SLA)范围内的升级服务¶
以下与升级相关的服务 不包括 :
在升级过程中,对现有数据和配置进行 清理 ;
未包含在维护合同中的附加模块 的升级,这些模块由内部或第三方(包括 Odoo 合作伙伴)创建;以及
培训 关于如何使用升级版本的功能和工作流程。
另请参阅