-- ============================================================ -- 新增 cms_navigation.url 字段 -- 用途: 存储栏目/导航的自定义链接地址, 与 path(路由地址) 相互独立。 -- 后台保存时写入该字段; 网站端导航优先使用 url, 未设置则回退 path。 -- 配合代码侧改动: -- - CmsNavigation 实体新增 url 字段 (MyBatis-Plus 自动映射列 url) -- - 网站端 getNavLink 优先使用 url; 外链原样返回, 不追加 navId -- 执行环境: 各租户业务库 (cms_navigation 为全局表) -- 执行方式: 幂等, 可重复执行 (已存在 url 列则跳过) -- ============================================================ -- 1. 幂等新增 url 列 SET @db = DATABASE(); SET @exists = ( SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = @db AND table_name = 'cms_navigation' AND column_name = 'url' ); SET @sql = IF( @exists = 0, 'ALTER TABLE cms_navigation ADD COLUMN url VARCHAR(500) DEFAULT NULL COMMENT ''自定义链接地址(优先级高于path)''', 'SELECT 1 AS skipped' ); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- 2. 验证字段已存在 -- 预期: url VARCHAR(500) DEFAULT NULL SHOW COLUMNS FROM cms_navigation LIKE 'url';