使用 Composer 更新 Drupal 核心.
本文假设您使用 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 核心,并希望将网站更新到另一个版本,您有两个选择。
- 您可以运行上面的 composer require 命令,指定新的锁定核心版本。
- 您可以取消核心版本的锁定,更新到最新版本的 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。