You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Drupal视图临时更改的数据库存储位置及异常修复咨询

Drupal视图临时更改的存储位置及故障修复方案

一、临时更改的存储位置

首先明确:默认情况下,Drupal视图的未保存临时更改(也就是你在编辑视图时还没点击「保存」的修改)是存在用户的会话(session)数据里,并不会写入到数据库的永久配置表(比如views_view、views_display)。这也是为什么点击「取消」就能快速撤销——它只是丢弃会话里的临时缓存,不会改动数据库里的正式视图配置。

只有当你安装了Views Cache Config这类第三方模块时,临时更改才可能被缓存到cache_views或其他自定义缓存表,但这不属于默认行为。


二、针对你遇到的视图故障的解决方案

你已经尝试了清理cache_views、替换views_display、禁用模块,但问题依然存在,那可以试试下面这些更针对性的方法:

  • 清除会话与全量缓存
    既然临时更改存在会话里,直接重置会话就能清除残留的临时配置:

    1. 退出当前账号再重新登录;
    2. 进入后台「配置 > 开发 > 清除缓存」,选择「清除所有缓存」(不要只清视图缓存),这会重置所有用户的会话和全站缓存数据。
  • 检查并修复视图配置表的一致性
    你替换了views_display,但views_view表的配置可能和它不一致,导致残留错误配置:

    • 如果是Drupal 8+:用Drush命令导出视图配置 drush config:export --destination=/tmp,找到对应视图的views.view.YOUR_VIEW_NAME.yml文件,查看display节点下是否包含那些broken的字段/筛选器,清理后再用drush config:import重新导入;
    • 如果是Drupal 7:用drush views-export YOUR_VIEW_NAME导出视图代码,手动移除错误的handler引用,再用drush views-import重新导入;
    • 直接操作数据库(记得先备份!):查看views_view表中对应视图的display字段(序列化数据),如果里面有不存在的字段引用,手动清理掉。
  • 修复Broken/Missing Handler
    那些显示为「Broken/missing handler」的字段,本质是视图配置引用了已被禁用/删除的模块或字段类型:

    1. 检查最近是否禁用/卸载过模块,尤其是提供这些字段的第三方模块或自定义模块;
    2. 用Drush命令自动修复:Drupal 8+执行drush views:repair YOUR_VIEW_NAME,Drupal 7执行drush views-repair YOUR_VIEW_NAME,这个命令会自动移除配置中无效的handler引用。
  • 重置视图的全部配置
    如果你有该视图的备份配置(比如之前导出的代码):

    1. 备份当前views_view和views_display表中对应视图的记录;
    2. 删除这两个表中该视图的所有记录;
    3. 重新导入备份的视图配置,或用Drush命令重建视图。

内容的提问来源于stack exchange,提问作者Markus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:23:31