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
升级 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:
- 检查PHP版本要求 (PHP 8.1)。
- 升级当前的 Drupal 版本到 Drupal 9.4.8 或者 Drupal 9.5。
- 升级所有contribute模块,直到兼容 Drupal 9 和 Drupal 10 的模块版本。
- 升级当前自定义模块,使之兼容 Drupal 10。
- 一切完成,接下来,运行命令升级 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的最新版本上有所体现,所以升级新版本也能带来更多新特性的尝试。
更多资料,请参考我们之前的文章:
2. Headless CMS:以API为输出的内容系统的构建
7. 如何通过Drupal Rector来快速升级Drupal