feat(W4): 院系子站嵌套路径-cms_site.path列+uk_site_path/parent_code,门户单段+嵌套双映射,旧链301,public_base_url派生,sitePath预览,SQL三处+升级脚本,T-W4-01..15 全绿279/279
This commit is contained in:
@@ -17,8 +17,8 @@
|
||||
-- ============================================================
|
||||
|
||||
-- 1. 站点(config_json 五键与 day3-seed.cjs 一致;logo 相对路径)
|
||||
INSERT INTO cms_site (id, code, parent_site_id, sch_id, sch_name, name, theme, config_json, status, create_by, create_time) VALUES
|
||||
(1, 'demo', 0, 990001, '云海大学', '云海大学门户网站', 'default',
|
||||
INSERT INTO cms_site (id, code, path, parent_site_id, sch_id, sch_name, name, theme, config_json, status, create_by, create_time) VALUES
|
||||
(1, 'demo', 'demo', 0, 990001, '云海大学', '云海大学门户网站', 'default',
|
||||
'{"logo": "/cms/upload/seed/logo-univ.svg", "contact": "地址:云海市学府路 1 号 · 电话:010-88888888", "copyright": "云海大学 版权所有 © 2026(演示数据)", "beian": "京ICP备00000000号-1 · 京公网安备110000000000号", "seo_description": "云海大学门户网站演示站点(day3 验收演示数据)"}',
|
||||
1, 'cmssuper', NOW());
|
||||
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
-- ============================================================
|
||||
-- W4 升级脚本:cms_site 嵌套 path(《功能修订方案.md》§8 / 附录 A,幂等)
|
||||
-- 目标库:存量 bsch_cms(生产/预发);干净环境直接用 cms_init.sql 无需本脚本
|
||||
-- 顺序:加列 → 回填(先顶层后子站,两层固定一轮)→ 约束切换 → 校验
|
||||
-- ============================================================
|
||||
|
||||
-- 1) 加列(存量默认空串,随后回填;已加列则跳过)
|
||||
ALTER TABLE cms_site ADD COLUMN path VARCHAR(191) NOT NULL DEFAULT '' COMMENT '门户路径(顶层=code;子站=父path/code),URL 唯一标识';
|
||||
|
||||
-- 2) 回填:先顶层后子站(幂等:仅处理 path='')
|
||||
UPDATE cms_site SET path = code WHERE (parent_site_id = 0 OR parent_site_id IS NULL) AND path = '';
|
||||
UPDATE cms_site s JOIN cms_site p ON s.parent_site_id = p.id
|
||||
SET s.path = CONCAT(p.path, '/', s.code)
|
||||
WHERE s.parent_site_id > 0 AND s.path = '';
|
||||
|
||||
-- 3) 约束切换(存量数据天然满足:code 曾全局唯一 ⇒ path 唯一)
|
||||
ALTER TABLE cms_site DROP INDEX uk_site_code;
|
||||
ALTER TABLE cms_site ADD UNIQUE KEY uk_site_path (path);
|
||||
ALTER TABLE cms_site ADD UNIQUE KEY uk_site_parent_code (parent_site_id, code);
|
||||
|
||||
-- 4) 校验(应返回 0 行)
|
||||
SELECT id, code, path FROM cms_site WHERE path = '';
|
||||
|
||||
-- ============================================================
|
||||
-- 附:R1 预留模板——学校主站编码改学校 ID(1000xxx)级联重算子站 path
|
||||
-- (切换生成规则后执行;把 {OLD_PREFIX} 替换为旧前缀、按新编码规则回填顶层)
|
||||
-- UPDATE cms_site SET path = CONCAT('1000', sch_id) WHERE parent_site_id = 0 AND code LIKE '{OLD_PREFIX}%';
|
||||
-- UPDATE cms_site s JOIN cms_site p ON s.parent_site_id = p.id
|
||||
-- SET s.path = CONCAT(p.path, '/', s.code)
|
||||
-- WHERE s.parent_site_id > 0;
|
||||
-- ============================================================
|
||||
Reference in New Issue
Block a user