5.2 KiB
5.2 KiB
44-老模板环境核对与后台报错说明 - 2026-04-19
目的
这份文档专门记录 2026-04-19 这次环境核对结论,解决两个后台报错的判断混乱问题:
读取真实站外 summary 骨架失败读取 SEO 结果观察面板失败
结论先说:
当前核心问题不是老模板代码,也不是
domain表本身,而是当前video2库缺少seo_external_snapshot表,同时相关 migration 尚未执行。
一、今天实际核对了什么
按固定顺序核对:
migrate:statusdomain表字段状态seo_external_snapshot是否存在- 当前库里的 migration 记录表情况
特别约束:
migrate只能由www用户执行
今天的 migrate:status 也是按这个约束执行的。
二、migrate:status 结果
今天已确认下面 3 条 migration 当前都是 down:
20260119132713 AddBaiduTokenToVideoTable20260410010000 CreateSeoExternalSnapshotTable20260410020000 OptimizeSeoExternalSnapshotIndexes
这说明:
d_baidu_token这类字段补充没有执行seo_external_snapshot建表没有执行seo_external_snapshot的索引优化也没有执行
三、当前库的实际状态
当前 .env 已确认连接的是:
DB_NAME = video2
1. domain 表
今天已确认:
domain表存在- 基础字段如:
d_domaint_id存在
但今天没有查到:
d_baidu_token
2. seo_external_snapshot 表
今天已确认:
seo_external_snapshot表不存在
这和后台报错完全一致。
四、为什么“真实站外 summary 骨架失败”
触发链路是:
- 后台接口:
- 调用:
- 它一上来先走:
buildAutoSnapshotSummary($days)
- 这一步内部又调用:
- 该 helper 底层模型:
- 绑定表名:
seo_external_snapshot
所以这个报错的根因不是:
- 骨架模板坏了
- provider skeleton 坏了
而是:
- 在进入 skeleton fallback 之前,自动快照分支先查表
- 当前库没有
seo_external_snapshot - 所以直接 SQL 异常
五、为什么“SEO 结果观察面板失败”
这次也已核对过,后台“SEO 结果观察面板”不是单独一块静态 UI,而是会去读“站外 SEO 观察数据”。
最像当前入口的是:
- router.php
/domain/external/seo/cn/overview
- Site.php
DomainExternalSeoCnOverviewHelper::buildOverview(...)
而这个 overview 底层直接依赖:
DomainExternalSeoSnapshotAnalysisHelper::buildSummary(...)DomainExternalSeoSnapshotAnalysisHelper::buildIndexMovementSummary(...)DomainExternalSeoSnapshotAnalysisHelper::buildKeywordMovementSummary(...)
这些 helper 的底层数据源仍然是:
seo_external_snapshot
所以这条报错本质上和“真实站外 summary 骨架失败”是同一类问题:
- 观察面板不是单独坏了
- 而是它背后的历史快照表没建起来
六、当前不要误判的点
1. 不要把主矛盾误判成 domain 表
当前 domain 表的 migration 确实没补齐,d_baidu_token 也没进库。
但今天这两个后台报错的第一矛盾不是它。
当前更直接的主矛盾是:
seo_external_snapshot缺表
2. 不要把问题误判成老模板 1001-1005
这两个报错属于:
- 后台站外 SEO 观察能力
- migration / 表结构层
而不是:
- 老模板前台 SEO 模板渲染失败
3. 不要直接在非 www 用户下跑 migrate
今天已经再次确认这条规则要固定下来:
migrate只能由www用户执行
七、当前最稳结论
截至 2026-04-19 当前环境,最稳结论是:
- 当前数据库是
video2 domain表存在,但相关新增字段未补齐seo_external_snapshot表不存在- 对应 migration 当前是
down - 后台“真实站外 summary / SEO 结果观察面板”这两类报错,根因都优先指向:
seo_external_snapshot缺失
八、后续最稳动作顺序
后续如果要继续推进,不要跳步,按下面顺序:
- 先
migrate:status - 再核对
domain表字段 - 再核对
seo_external_snapshot是否缺失 - 最后再决定是否执行 migration
执行约束:
- 只能由
www用户执行
九、一句话交接
2026-04-19这次后台报错核对已经确认:当前环境主矛盾不是老模板也不是domain表本身,而是video2库缺少seo_external_snapshot,且相关 migration 仍是down;后续如果要处理,必须按“先 status、再核字段和缺表、最后由 www 执行”的顺序推进。