新增: 任务推进链(7态状态机+advance_task CAS原子写)+软删除+前后端7态对齐
This commit is contained in:
@@ -84,6 +84,14 @@ pub fn run(conn: &Connection) -> Result<()> {
|
||||
migrate_v13(conn)?;
|
||||
}
|
||||
|
||||
if current_version < 14 {
|
||||
migrate_v14(conn)?;
|
||||
}
|
||||
|
||||
if current_version < 15 {
|
||||
migrate_v15(conn)?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -267,6 +275,41 @@ fn migrate_v13(conn: &Connection) -> Result<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// V14: 幂等补 tasks.deleted_at 列(软删回收站,对标 projects.deleted_at V11)
|
||||
///
|
||||
/// 删除任务改为软删:deleted_at NULL=正常,非空=已进回收站(可恢复)。
|
||||
/// 与 projects.soft_delete 同模板:TaskRecord 不带该字段,纯靠 SQL WHERE deleted_at IS NULL
|
||||
/// 过滤;子表(branches)不动,FK 仍满足,任务数据完整保留待恢复。
|
||||
/// 用 PRAGMA 探测列存在性,缺失才 ALTER(同 v4/v5/v6/v8/v10/v11 模式)。
|
||||
fn migrate_v14(conn: &Connection) -> Result<()> {
|
||||
if !column_exists(conn, "tasks", "deleted_at") {
|
||||
conn.execute("ALTER TABLE tasks ADD COLUMN deleted_at TEXT", [])?;
|
||||
tracing::info!("v14: 补建 tasks.deleted_at 列(软删回收站)");
|
||||
}
|
||||
conn.execute("INSERT INTO schema_version (version) VALUES (?)", [14])?;
|
||||
tracing::info!("迁移 v14 完成");
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// V15: 幂等补 tasks.review_rounds 列(review 退回累计轮数,F-260616-04)
|
||||
///
|
||||
/// 任务推进链状态机退回时累加:in_review→in_progress / testing→in_review 各 +1,
|
||||
/// 由 advance_task(df-nodes::task_advance_node)原子写入。默认 0(从未退回过的任务)。
|
||||
/// NOT NULL DEFAULT 0 保证老库行迁移后取值确定(非 NULL),TaskRecord 字段为 i32(非 Option)。
|
||||
/// 用 PRAGMA 探测列存在性,缺失才 ALTER(同 v4/v5/v6/v8/v10/v11/v14 模式)。
|
||||
fn migrate_v15(conn: &Connection) -> Result<()> {
|
||||
if !column_exists(conn, "tasks", "review_rounds") {
|
||||
conn.execute(
|
||||
"ALTER TABLE tasks ADD COLUMN review_rounds INTEGER NOT NULL DEFAULT 0",
|
||||
[],
|
||||
)?;
|
||||
tracing::info!("v15: 补建 tasks.review_rounds 列(review 退回累计轮数)");
|
||||
}
|
||||
conn.execute("INSERT INTO schema_version (version) VALUES (?)", [15])?;
|
||||
tracing::info!("迁移 v15 完成");
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// V1 建表 SQL
|
||||
const V1_SQL: &str = "
|
||||
-- 想法表
|
||||
@@ -301,7 +344,8 @@ CREATE TABLE IF NOT EXISTS tasks (
|
||||
title TEXT NOT NULL,
|
||||
description TEXT NOT NULL DEFAULT '',
|
||||
status TEXT NOT NULL DEFAULT 'todo',
|
||||
priority INTEGER NOT NULL DEFAULT 1,
|
||||
-- priority 默认 2 对齐 task.rs default_priority()=2(medium)
|
||||
priority INTEGER NOT NULL DEFAULT 2,
|
||||
branch_name TEXT,
|
||||
assignee TEXT,
|
||||
created_at TEXT NOT NULL,
|
||||
|
||||
Reference in New Issue
Block a user