在你开始之前
建议使用Composer来管理Drupal依赖项; 阅读将Composer与Drupal一起使用以获取更多信息。Drush 9不再支持更新Drupal并将工作留给Composer。因此,建议使用Composer更新Drupal。但是,如果您是Drush的长期用户,您仍然可以使用Drush 8(8.14或更高版本)来更新Drupal 8。
PS! 这些说明的介绍总结了您可以选择的所有更新选项。
在更新过程中出现致命错误时,始终恢复为备份。
# 更新Drupal 8核心
使用Drush 8.x 更新Drupal 8核心的步骤。Drush是Drupal Shell。
-
备份您的文件和数据库。使用Drush,输入并执行此命令。
drush archive-dump
-
笔记
-
在更新之前创建备份很重要。因此,如果在更新期间或之后出现意外情况,您将能够快速轻松地还原更新。
-
上面的“drush archive-dump”命令创建了.tar.gz文件和数据库。这是一个传统的Drush命令。预计将在Drush中删除。此命令仅涵盖位于/ web目录下的文件。
-
-
- 检查可用的更新
drush ups
- 注意:上面的命令是简短的
drush pm-updatestatus
- 注意:上面的命令是简短的
- 激活 维护模式
drush sset system.maintenance_mode 1
- 清除缓存
drush cr
- 笔记
- “cr”是“缓存重建”的缩写
- 此命令清除Drupal数据库中的cache_ * bin,然后重建站点的容器
- 笔记
- 选择以下一个或多个选项以执行更新。您选择哪个选项取决于所需的更新类型。
- 选项:更新Drupal 8核心
drush up drupal
- 选项:将 Drupal 8核心更新到开发分支,仅用于测试和补丁创建(不是生产)
drush up drupal-8.5.x-dev
- 选项:更新单个模块
drush up module_name
- 选项:仅更新安全更新
drush up --security-only
- 选项:更新Drupal 8核心
- 如果适用,请对文件重新应用任何手动修改。例如.htaccess,composer.json或robots.txt。因为Drush不会自动执行此操作。
- 重新应用升级前使用的所有核心补丁(假设尚未合并这些补丁)。
- 通过良好的提交消息很容易找到它们。
% git log --oneline --reverse core
ee2bf8dd Issue #18: Updated Drupal core from 8.3.4 to 8.3.5.
267e3ad0 Issue #27: Applied patch from https://www.drupal.org/project/drupal/issues/2174633#comment-12291691.
718ecba5 Issue #9: Applied patch from https://www.drupal.org/project/drupal/issues/2906229#comment-12496488.
- 对于自上次核心更新以来每个先前应用的补丁,请按时间顺序使用git cherry-pick命令(如果失败则修复冲突)。
% git cherry-pick 267e3ad0
% git cherry-pick 718ecba5
...
- 通过良好的提交消息很容易找到它们。
- 如果使用Composer来管理PHP库(例如,因为某些贡献的模块需要它),请使用以下命令更新/ vendor目录:
composer update drupal/core --with-dependencies
- 如果需要任何所需的数据库更新,请更新数据库
drush updb
- 检查您的网站是否正常。为此:
- 使用Drupal,查看状态报告页面
- 使用浏览器访问重要页面来测试您的网站
- 停用维护模式
drush sset system.maintenance_mode 0
- 再次清除缓存
drush cr
- 完成。您已使用Drush成功更新了Drupal 8 :)
评论