新增: 灵感软删除回收站+雷达图正名(父⑤)
- IDEA-FIX-01: ideas 软删除(对标 tasks V14)— V28 迁移 deleted_at(幂等 ALTER) + IdeaRepo soft_delete/restore/list_deleted + list_by_query 恒带 deleted_at IS NULL(防回收站泄漏) + delete_idea 改软删 + restore_idea/list_deleted_ideas IPC + IdeaRecord 不加字段(纯 SQL WHERE 过滤) - IDEA-FIX-14: 雷达图 CSS class radar→score-bar(IdeaDetail/ProjectDetail 2 文件 template+style+注释,纯正名零行为变更) - 6 新测试(soft_delete 标记+过滤/幂等/missing, restore 还原/仅已删, list_deleted 排序);df-storage 73 测试过
This commit is contained in:
@@ -32,7 +32,8 @@ pub fn run(conn: &Connection) -> Result<()> {
|
||||
// V27 = TD-260621-05 审批状态统一(ai_tool_executions.status executed→completed,
|
||||
// 对齐 DTO 契约 audit/mod.rs:53 只列 completed + 前端 i18n auditLog.status 无 executed 键 +
|
||||
// 治 AuditLog executed 记录显示错位蓝pending标签+raw"executed")。
|
||||
let steps: [(i32, fn(&Connection) -> Result<()>); 27] = [
|
||||
// V28 = 灵感软删回收站(ideas.deleted_at,对标 tasks.deleted_at V14/projects.deleted_at V11)。
|
||||
let steps: [(i32, fn(&Connection) -> Result<()>); 28] = [
|
||||
(1, migrate_v1),
|
||||
(2, migrate_v2),
|
||||
(3, migrate_v3),
|
||||
@@ -60,6 +61,7 @@ pub fn run(conn: &Connection) -> Result<()> {
|
||||
(25, migrate_v25),
|
||||
(26, migrate_v26),
|
||||
(27, migrate_v27),
|
||||
(28, migrate_v28),
|
||||
];
|
||||
|
||||
for (version, migrate_fn) in steps {
|
||||
@@ -679,6 +681,23 @@ fn migrate_v27(conn: &Connection) -> Result<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// V28: 幂等补 ideas.deleted_at 列(灵感软删回收站,对标 tasks.deleted_at V14)
|
||||
///
|
||||
/// 删除灵感改为软删:deleted_at NULL=正常,非空=已进回收站(可恢复)。
|
||||
/// 与 tasks/projects.soft_delete 同模板:IdeaRecord 不带该字段,纯靠 SQL WHERE
|
||||
/// deleted_at IS NULL 过滤;关联数据(idea_evaluations 评估历史)不动,FK 仍满足,
|
||||
/// 灵感数据完整保留待恢复。用 PRAGMA 探测列存在性,缺失才 ALTER
|
||||
/// (同 v4/v5/v6/v8/v10/v11/v14/v15/v16/v17/v18/v19/v20/v23/v24 模式),对新库/老库均安全。
|
||||
fn migrate_v28(conn: &Connection) -> Result<()> {
|
||||
if !column_exists(conn, "ideas", "deleted_at") {
|
||||
conn.execute("ALTER TABLE ideas ADD COLUMN deleted_at TEXT", [])?;
|
||||
tracing::info!("v28: 补建 ideas.deleted_at 列(灵感软删回收站)");
|
||||
}
|
||||
conn.execute("INSERT INTO schema_version (version) VALUES (?)", [28])?;
|
||||
tracing::info!("迁移 v28 完成");
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// V21 建表 SQL — 消息拆分存储 ai_messages 表
|
||||
///
|
||||
/// 与 V9_SQL 中的 ai_messages 镜像(V9 给新库,此 const 给老库 V21 迁移用 IF NOT EXISTS)。
|
||||
|
||||
Reference in New Issue
Block a user