logo

额外区块类型 (EBT) - 全新的布局构建器体验❗

额外区块类型 (EBT) - 样式化、可定制的区块类型:幻灯片、标签页、卡片、手风琴等更多类型。内置背景、DOM Box、JavaScript 插件的设置。立即体验布局构建的未来。

演示 EBT 模块 下载 EBT 模块

❗额外段落类型 (EPT) - 全新的 Paragraphs 体验

额外段落类型 (EPT) - 类似的基于 Paragraph 的模块集合。

演示 EPT 模块 滚动

滚动

数据库更新故障排除

06/10/2025, by Ivan
在开始排查数据库更新相关问题之前,请务必先备份数据库和代码库。

如果存在阻止数据库更新安全运行的问题,update.php 将显示错误信息。

请仔细阅读错误消息,以便针对性地解决问题。

无效的模块或主题

在某些情况下,update.php 可能会提示存在无效的模块或主题。当某个模块或主题在配置文件 core.extension.yml 中被声明,但其文件缺失或与网站不兼容时,就会发生这种情况。

排查此问题时,首先要确认您没有导入错误版本的 core.extension.yml 配置文件。然后根据具体的错误信息进一步解决问题。问题解决后,重新运行 update.php。

模块或主题缺失

missing_modules

1. 如果 update.php 报告模块或主题缺失,且 core.extension.yml 文件无误,请确认该模块或主题是否存在于网站代码库中。

  • 例如,检查 [site-root]/modules 和 [site-root]/sites/all/modules,查找与缺失模块名称匹配的文件夹。[site-root]/modules 的优先级高于 [site-root]/sites/all/modules,但系统会扫描这两个目录。

2. 如果该文件夹完全不存在,请在 Drupal.org 模块库中查找该模块,并重新下载到模块目录中。请确保下载与您所用 Drupal 版本兼容的版本。

3. 如果文件夹存在,但内部文件缺失或已损坏,也可以在 Drupal.org 模块库中重新下载对应版本。确保版本兼容,然后用新版本覆盖现有文件夹。

4. 如果模块并非从 Drupal.org 下载,请尝试找到其原始来源。

  • 如果模块属于您网站的自定义开发,请尝试找到原始副本并重新放入 modules 文件夹。
  • 如果模块来自第三方(例如托管于 GitHub),请找到有效版本并重新下载。

5. 如果仍无法找到该模块,您可以尝试从 core.extension.yml 文件中删除其记录。注意,这可能会导致网站出现其他严重错误。

6. 当模块恢复后,重新运行 update.php。

模块或主题与已安装的 Drupal 版本不兼容

theme_incompatible

1. 如果 update.php 提示模块或主题与当前 Drupal 版本不兼容,则您需要更新 Drupal 核心或该模块 / 主题。

2. 首先在“报告 > 状态报告”(Reports > Status report)页面查看当前 Drupal 核心版本。

3. 然后在模块路径 modules/modulename/modulename.info.yml 文件中查看版本声明。文件顶部通常包含以下任一行:

core: 8.x
core_version_requirement: ^8.8 || ^9

表示该模块兼容 Drupal 8.8+ 和 Drupal 9。此时 core: 8.x 可选可无。(了解更多关于 core_version_requirement 的信息)

core_version_requirement: ^9

表示该模块仅兼容 Drupal 9。

core: 8.x

表示该模块仅兼容 Drupal 8。

core: 7.x

表示该模块仅兼容 Drupal 7。

4. 如果您的 Drupal 核心版本过低,请下载并升级核心。

5. 如果模块版本过低,请下载或安装其兼容的更新版本。

6. 如果找不到兼容版本,可能需要从备份中恢复网站的旧版本。

7. 当 Drupal 核心与模块 / 主题均为兼容版本时,重新运行 update.php。

模块或主题与已安装的 PHP 版本不兼容

incompatible_modules

1. 如果模块或主题与当前 PHP 版本不兼容,请在 modules/modulename/modulename.info.yml 文件中查找类似以下的声明:

php: 7.3

2. 方案一:安装支持您网站 PHP 版本的模块或主题版本。

3. 方案二:将您网站的 PHP 版本更改为与模块兼容的版本。

4. 当 PHP 版本与模块 / 主题均兼容后,重新运行 update.php。