使用 Composer 更新 Drupal 核心.

Learn DrupalDrupal-woordenlijst

本文假设您使用 Composer 项目安装了 Drupal,例如drupal/core-recommended 或 drupal/dxpr-marketing-cms-project

列出可用的 Drupal 更新

composer outdated "drupal/*"

如果没有以drupal/core开头的行,说明 Composer 没有发现任何更新。如果有更新,请继续执行下面的命令

备份您的 Drupal 实例

更新生产网站时,请务必在更新前创建备份,即使您已在开发或测试环境中成功试过更新。请使用托管服务商的工具为 Drupal 网站创建备份或快照。

更新 Drupal 核心代码

如果您使用的是 drupal/core-recommended:

composer update "drupal/core-*" --with-all-dependencies

要模拟更新并查看会发生什么,而不实际更改任何内容,请添加--dry-run。

更新到核心的最新补丁版本

如果您希望将网站更新到最新的补丁版本,而不是最新的次版本,请添加--with=选项,为drupal/core-*依赖逐一指定,相关依赖列在composer.json。

例如,如果 10.2 是当前次版本,而您希望将网站更新到 10.3 的最新补丁版本:

composer update "drupal/core-*" --with-all-dependencies --with=drupal/core-recommended:~10.3.0 --with=drupal/core-composer-scaffold:~10.3.0

本例假设 drupal/core-recommended 和 drupal/core-composer-scaffold 是composer.json中仅有的 Drupal 核心依赖。

更新到指定的核心版本

一般情况下,我们建议您在更新时不要指定具体的 Drupal 核心版本,除非您确定要锁定到某个特定版本。如果您确实希望将网站锁定到特定版本,可以参考以下示例:

要将网站锁定到 10.3.6 版本并相应更新所有依赖:

composer require drupal/core-recommended:10.3.6 drupal/core-composer-scaffold:10.3.6 drupal/core-project-message:10.3.6 --update-with-all-dependencies

警告:如果您将网站锁定到某个特定的核心版本,该版本将被写入锁定文件,未来的更新不会超过该版本。要回到未锁定的核心版本,请按下方说明重新运行 require 命令。

取消锁定特定的核心版本

如果您正在运行锁定版本的 Drupal 核心,并希望将网站更新到另一个版本,您有两个选择。

  1. 您可以运行上面的 composer require 命令,指定新的锁定核心版本。
  2. 您可以取消核心版本的锁定,更新到最新版本的 Drupal。

要取消 Drupal 版本的锁定,请运行以下命令:

composer require drupal/core-recommended drupal/core-composer-scaffold drupal/core-project-message --update-with-all-dependencies

运行数据库更新

为方便起见,我们附上了完成更新所需的Drush命令,很多人觉得 Drush 比网页管理界面更快更易用。

您可以使用 drush:

drush updatedb
drush cache:rebuild

或者在浏览器中访问[YOUR DOMAIN]/update.php。