45 lines
1.5 KiB
Markdown
45 lines
1.5 KiB
Markdown
# Daily Todo 数据库迁移
|
||
|
||
## 自动迁移
|
||
|
||
SQLAlchemy 会在应用启动时通过 `init_db()` 自动创建所有表,包括 `daily_todos` 表。
|
||
|
||
## 手动迁移(如需)
|
||
|
||
如果需要手动创建表,执行以下 SQL:
|
||
|
||
```sql
|
||
CREATE TABLE IF NOT EXISTS daily_todos (
|
||
id VARCHAR(36) PRIMARY KEY,
|
||
user_id VARCHAR(36) NOT NULL,
|
||
title VARCHAR(500) NOT NULL,
|
||
is_completed BOOLEAN NOT NULL DEFAULT 0,
|
||
source VARCHAR(20) NOT NULL DEFAULT 'manual',
|
||
source_detail VARCHAR(500),
|
||
source_ref_id VARCHAR(36),
|
||
todo_date VARCHAR(10) NOT NULL,
|
||
completed_at TIMESTAMP NULL,
|
||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||
);
|
||
|
||
CREATE INDEX IF NOT EXISTS idx_daily_todos_user_date ON daily_todos(user_id, todo_date);
|
||
CREATE INDEX IF NOT EXISTS idx_daily_todos_user_id ON daily_todos(user_id);
|
||
```
|
||
|
||
## 表说明
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| id | VARCHAR(36) | 主键,UUID |
|
||
| user_id | VARCHAR(36) | 所属用户,索引 |
|
||
| title | VARCHAR(500) | 待办标题 |
|
||
| is_completed | BOOLEAN | 是否完成,默认 false |
|
||
| source | VARCHAR(20) | 来源:ai_kanban / ai_chat / manual |
|
||
| source_detail | VARCHAR(500) | 来源说明文本 |
|
||
| source_ref_id | VARCHAR(36) | 来源原始ID(看板TaskID或对话ID) |
|
||
| todo_date | VARCHAR(10) | 所属日期 YYYY-MM-DD |
|
||
| completed_at | TIMESTAMP | 完成时间 |
|
||
| created_at | TIMESTAMP | 创建时间 |
|
||
| updated_at | TIMESTAMP | 更新时间 |
|