Drupal 7/8/9 如何升级到Drupal 10?

 

Drupal 10 在2022年12月16日官宣发布,不过美国可能是15日,也有可能是官方说的14日半夜 ^_^,无论如何,Drupal 10 发布成功了,这是最重要的。相比Drupal 9来说,Drupal 10 更新了组件、优化了Drupal 9的代码,升级相比之前来说,升级到 Drupal 10 也更加容易。

我们简单看一下 Drupal 10的几个新功能,

  • 默认主题是 Olivero,弃用了 Bartik
  • 默认管理主题是 Claro 弃用了 Seven
  • CKEditor 5 替代了 CKEditor 4
  • 弃用jQuery,使用两个更现代化的JavaScript组件
  • Symfony 6 替代 Symfony 4, PHP 升级到 8.1 

 本文重点讲解一下,如何从旧版本的 Drupal 升级到最新的 Drupal 10。

 

Drupal 10 升级

 

如何升级Drupal 10

 

升级 Drupal10 的准备

在升级之前,我们要检查一下当前的版本,如果不是太清楚可以到后台查看,Administration > Reports > Status,就可以看到具体的版本。

对于 Drupal 9 版本的用户,那么需要确保是 Drupal 9.4以上,如果9.4以下,需要先升级到Drupal9.4,然后才可以升级到Drupal10。

对于 Drupal 8 版本的用户,也是先要升级到 Drupal 9.4以上,然后才可以升级Drupal 10。

 

Drupal 9 升级到 Drupal 10

Drupal 9 升级 Drupal 10相对比较简单,就是升级,而不是迁移,无需数据库导出导入等。此外,升级前最好检查一下codebase,看看是否使用了 composer,最好用composer管理,因为Drupal 10更新了很多组件,尤其是symfony。还有一点,PHP版本要确保PHP的版本是8.1以上。

另外,升级前建议安装一下Upgrade Status模块,这个模块可以把相关的模块状态全部列出来,比较直观。

 

 

 

上面的一切就绪,可以按照下面的步骤来升级Drupal 10:

  1. 检查PHP版本要求 (PHP 8.1)。
  2. 升级当前的 Drupal 版本到 Drupal 9.4.8 或者 Drupal 9.5。
  3. 升级所有contribute模块,直到兼容 Drupal 9 和 Drupal 10 的模块版本。
  4. 升级当前自定义模块,使之兼容 Drupal 10。
  5. 一切完成,接下来,运行命令升级 Drupal 核心到 10。

 

Drupal 7 升级到 Drupal 10 

Drupal 7 的升级相对来说,复杂很多,因为 Drupal 7本身已经落后两个版本了,要升级到Drupal10是相当不容易的。

对于 Drupal 7的升级,我们还是建议直接新建站点,而不是在之前的codebase上进行升级,也就是直接基于 Drupal10进行开发新站点。

那么 Drupal 7升级到Drupal10的步骤具体参考下图:

 

当然,上面的图还少了custom模块的新开发,因为Drupal7是基于函数类型的,Drupal8、9、10都是基于Symfony的OOP框架的,所以基本上Drupal 7的模块都需要重构才可以使用。

 

为什么要升级 Drupal 10

 

首先,Drupal 7 已经比目前的 Drupal10 低3个版本,并且 Drupal 7 由于用户量大,已经将其support时间延长到2023年11月,所以过了2023年11月,Drupal7将不被在支持。

对于 Drupal 8,官方目前已经不支持了。

对于 Drupal 9,也会在不久的未来失去支持。

而支持 Drupal 7 和 Drupal 8 的 PHP7 也即将被弃用。

因此,如果一个系统官方不再支持,那么就会变得漏洞比较多,容易被攻击,后续的安全漏洞和BUG不能及时修复,对安全和管理都带来了不可估量的隐患,所以还是建议,在最好时间段,早点升级到最新的版本比较好。

另外,Drupal的一些新功能,新模块,都是在Drupal的最新版本上有所体现,所以升级新版本也能带来更多新特性的尝试。

 

 

更多资料,请参考我们之前的文章:

1. Drupal 10 初探及常见问题答疑

2. Headless CMS:以API为输出的内容系统的构建

3. 如何用开源的系统来构建知识库平台?

4. 开源的CMS如何实现问卷调研?

5. 基于Drupal的在线教育网站案例

6. 如何基于开源系统构建资料库/文档库平台

7. 如何通过Drupal Rector来快速升级Drupal