如何将Drupal网站升级到Drupal10

将Drupal网站从Drupal9升级到Drupal10是一个多步骤过程,涉及几个不同的任务。从Drupal9升级到Drupal10的过程类似于将Drupal8升级到Drupal9,因此如果您已经将Drupal网站升级到了Drupal 9,那么升级到Drupal10应该相对容易。
Drupal的最新版本包括许多新功能和增强。我还想提请您注意我关于Drupal 10特性的文章。

一、将Drupal网站升级到Drupal10的系统要求

由于这是一个主要的升级检查Drupal 10系统要求是必须的!在开始升级过程之前,请确保服务器满足这些要求。最重要的要求是PHP 8.1。
但在将服务器升级到PHP8.1之前,请检查所有Drupal模块和Drupal主题是否支持此版本。否则,运行Composer命令时可能会遇到类似的错误。
在将Drupal网站升级到Drupal 10之前,您需要确保运行的是最新版本的Drupal 9
此外,正如往常一样,在升级Drupal网站之前,对Drupal网站进行备份。这便于在升级过程中出现任何问题时恢复到操作前的状态。

二、将Drupal网站升级到Drupal10的检查兼容性

上一次我们使用drupal检查命令行工具检查代码弃用,但这次让我们使用升级状态模块。使用Composer和Drush安装并启用它:
composer require drupal/upgrade_status
drush en upgrade_status
转到以下页面:/admin/reports/upgrade status并检查报告中的Drupal模块和Drupal主题。就我而言,我正在更新这个网站(www.changfengyun.cn),我有一个自定义模块和一个自定义主题。

正如您所看到的,这两个项目都与Drupal 10不兼容。我进行了一次扫描,结果是我必须做两个小改动,使它们与最新版本的Drupal兼容。


我所要做的就是更新信息文件并从中进行更改:
core_version_requirement: ^9
改为:
core_version_requirement: ^9 | ^10
保持自定义模块与新标准保持最新,并尽快删除不推荐使用的代码,将在您必须进行主要核心升级时产生如此小的更改。如果您的代码没有定期维护,您的弃用报告可能会更大,需要解决的问题更多。
一旦我们确定我们的Drupal模块和Drupal主题与Drupal 10兼容,我们就可以开始检查contrib代码。这就是事情可能变得棘手的地方。


升级状态模块提示您首先更新所有contrib模块,因此请使用Composer进行更新。新版本可能已准备就绪,也可能尚未准备就绪。由于我们正在进行主要的核心升级,因此没有理由不将所有模块和软件包完全更新到最新版本:
composer update
现在返回到升级状态报告,检查与维护者协作部分的内容。如果你在这里看到任何东西,这意味着目前没有简单的方法将你的网站升级到Drupal 10

所有这些contrib模块都与Drupal的最新版本不兼容。所以基本上我现在被阻止了,我无法继续核心升级。

如果您考虑将Drupal网站升级到Drupal10。考虑使用与Drupal 10兼容的替代contrib模块,或者如果不是必要的话,将其从项目中完全删除。当它与Drupal 10兼容时,您可以稍后再添加它。例如,我可以删除配置只读模块,因为它不提供任何对我来说重要的内容。

另一种选择是使用补丁使模块Drupal 10就绪。您很可能在Drupal.org上的模块问题队列中找到补丁,也可以自己创建。