Drupal8.8开始,内核已经涵盖了诸如jsonAPI、media以及layout buider等模块。尽管Drupal9刚刚发布,但Drupal9是从Drupal8平滑升级的,所以Drupal8的功能在Drupal9基本都可以直接使用。当然Drupal9在技术上肯定是作了很大的优化,不用担心Drupal8升级到Drupal9会出现很多问题。而且,Drupal9对Drupal8的主题兼容性也很好。
本文介绍如何顺利地从Drupal8升级到Drupal9,希望对大家有所帮助。
必要条件
Drupal9的环境要求
- 在Apache上运行Drupal 9,至少需要2.4.7版。
- 至少需要PHP7.3。PHP 7.4也受支持,但不是必需的。
- 如果使用MySQL则至少需要5.7.8版。
- 如果使用MariaDB,则至少需要10.2.7版本。
- 如果使用DDEV,DDEV可以满足上述要求并支持Composer。
使用Composer管理依赖
- 确保本地开发环境可以正常使用Composer。
- 确保Composer可以正确使用镜像。
Drupal8的三种构建方式
- 1.最常见的是在官网下载源码。
- 2.其次是用
composer require drupal/core-dev命令。 - 3.现在用
composer require drupal/core-recommended命令。
三种方式都支持Composer。 第一种方式composer.json及相关文件放在网站的根目录中。 第二、三种方式,在网站的根目录外面又包裹一层目录,将网站根目录放在上层目录的子目录
web之下,composer.json及相关文件放在上层目录中。
升级方法
-
1.将网站根目录下的
/sites/defalut/*settings.php和*services.yml置于可写状态。 -
2.对于上述的第一、三种构建方式,执行
composer require drupal/core-recommended:^9.0.0 drupal/core-composer-scaffold:^9.0.0 --update-with-dependencies --no-update命令;对于上述第二种构建方式,执行composer require drupal/core-dev:^9.0.0 --dev --update-with-dependencies --no-update命令。
注意:针对上述第一种方式,在网站的根目录执行Composer的命令;对于第二、三种方式,在网站根目录的上级目录执行Composer的命令。实际上是自动修改composer.json中的依赖参数。
-
3.指定需要更新版本的别名,进行实际更新。如,从8.9.0更新到9.0.0,可以执行
composer require "drupal/core:9.0.0 as 8.9.0" --no-update && composer update命令(确保将9.0.0和8.9.0替换为安装中使用的任何版本)。 -
4.完成更新后,将网站根目录下的
/sites/defalut/*settings.php和*services.yml置于只读状态。