- EventRow 新增 sources 字段;init_schema 幂等 ALTER 补列(MariaDB) - save_report 写入 sources JSON;_article_sources_full 完整来源列表 - source 字段保持 ≤3 拼接兼容;新增多源完整列表测试 - 已部署 pi5:sources 列写入验证通过(单源数组);完整多源待新数据
52 lines
2.7 KiB
Python
52 lines
2.7 KiB
Python
"""MySQL DDL:日报结构化入库(表前缀 news_,目标 MariaDB 10.11)。
|
||
|
||
与 news 项目 docs/db_schema.md 保持一致(news_report / news_event)。
|
||
历史日报已由 news 项目 report-import 导入,本包只负责新日报写入与幂等建表。
|
||
"""
|
||
|
||
from __future__ import annotations
|
||
|
||
DDL_STATEMENTS: list[str] = [
|
||
# 日报主表
|
||
"""
|
||
CREATE TABLE IF NOT EXISTS news_report (
|
||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||
report_date DATE NOT NULL COMMENT '日报日期',
|
||
report_type VARCHAR(16) NOT NULL COMMENT 'finance=A股日报 / intl=国际财经日报',
|
||
file_name VARCHAR(160) NOT NULL DEFAULT '' COMMENT '源文件名(历史解析);新生成可为空',
|
||
generated_at DATETIME NOT NULL COMMENT '生成时间',
|
||
ai_summary TEXT NULL COMMENT 'AI 摘要全文',
|
||
stats JSON NULL COMMENT '数据总览统计快照(管道/情绪/重要度/事件类型/来源分布)',
|
||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
UNIQUE KEY uk_report_file (report_date, report_type, file_name),
|
||
KEY idx_report_date (report_date)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='每日日报主表'
|
||
""",
|
||
# 日报事件明细
|
||
"""
|
||
CREATE TABLE IF NOT EXISTS news_event (
|
||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||
report_id BIGINT UNSIGNED NOT NULL COMMENT 'FK → news_report.id',
|
||
section VARCHAR(16) NOT NULL COMMENT '板块: xwlb=新闻联播 / news=财经新闻 / cninfo=公告调研 / intl=国际重要事件',
|
||
rank INT NOT NULL DEFAULT 0 COMMENT '板块内序号',
|
||
importance INT NULL COMMENT '重要度 1-5',
|
||
event_type VARCHAR(64) NULL COMMENT '事件类型',
|
||
title VARCHAR(512) NOT NULL COMMENT '标题',
|
||
summary TEXT NULL COMMENT '摘要/正文',
|
||
sentiment VARCHAR(8) NULL COMMENT 'positive/negative/neutral',
|
||
source VARCHAR(64) NULL COMMENT '来源(多源时拼接展示名,最多前 3 个)',
|
||
sources TEXT NULL COMMENT '全部来源(JSON 数组,主源居首;多源新闻完整列表)',
|
||
url VARCHAR(512) NULL COMMENT '原文链接',
|
||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
KEY idx_report_section (report_id, section),
|
||
KEY idx_title (title(255))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='日报事件明细'
|
||
""",
|
||
# 旧表补列(幂等;MariaDB 10.0.2+ 支持 ADD COLUMN IF NOT EXISTS)
|
||
"""
|
||
ALTER TABLE news_event
|
||
ADD COLUMN IF NOT EXISTS sources TEXT NULL
|
||
COMMENT '全部来源(JSON 数组,主源居首;多源新闻完整列表)' AFTER source
|
||
""",
|
||
]
|