-- ============================================================================= -- 新闻中心多站点:为 f_news / f_news_category 增加 site_code -- 执行前请备份数据库。可与 schema 增量部署,适合在 Gitea 发版后由运维一次性执行。 -- 固定站点编码示例:wuhansaga(主站)、saga-secondary(第二站点,可按品牌改名) -- ============================================================================= SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci; -- 新闻分类:站点维度的栏目互相独立(不同站点可有各自一套分类及排序) ALTER TABLE f_news_category ADD COLUMN site_code VARCHAR(32) NOT NULL DEFAULT 'wuhansaga' COMMENT '站点编码:小写英文短码,如 wuhansaga、saga-secondary,扩展新站时仅增编码不改结构' AFTER category_id; ALTER TABLE f_news_category ADD KEY idx_f_news_category_site (site_code, del_flag, is_published, sort_order); -- 新闻正文:与分类 site_code 逻辑上一致;保存时业务侧校验 category 与 news 同属一站 ALTER TABLE f_news ADD COLUMN site_code VARCHAR(32) NOT NULL DEFAULT 'wuhansaga' COMMENT '站点编码,与 f_news_category.site_code 取值域一致' AFTER category_id; ALTER TABLE f_news ADD KEY idx_f_news_site_list (site_code, del_flag, is_published, category_id), ADD KEY idx_f_news_site_time (site_code, del_flag, is_published, create_time); -- 旧数据:全部归入主站(若第二站需相同栏目结构,可复制分类再批量改 site_code / 或导数据) UPDATE f_news_category SET site_code = 'wuhansaga' WHERE site_code = '' OR site_code IS NULL; UPDATE f_news SET site_code = 'wuhansaga' WHERE site_code = '' OR site_code IS NULL; -- --------------------------------------------------------------------------- -- 【可选】第二站点初始化分类骨架(与主站相同名称时仍需独立 category_id) -- --------------------------------------------------------------------------- -- INSERT INTO f_news_category (site_code, name_zh, name_en, sort_order, is_published) -- SELECT 'saga-secondary', name_zh, name_en, sort_order, is_published -- FROM f_news_category WHERE site_code = 'wuhansaga' AND del_flag = 0;