# 数据库补充表初始化

## 概述

如果您在运行测试时遇到 `relation "text_storage" does not exist` 错误，说明需要执行补充表初始化脚本。

## 初始化步骤

### 方法 1：使用 psql 命令行

```bash
# 连接到数据库并执行脚本
psql -U <username> -d lingyue_zhibao -f backend/sql/supplement_tables.sql
```

### 方法 2：使用数据库客户端工具

1. 打开您的数据库客户端（如 DBeaver、pgAdmin 等）
2. 连接到 `lingyue_zhibao` 数据库
3. 打开并执行 `backend/sql/supplement_tables.sql` 文件

## 补充表说明

`supplement_tables.sql` 包含以下表：

1. **text_storage** - 文本存储路径表（用于记录解析后的文本文件路径）
2. **vector_embeddings** - 向量存储表（用于 RAG 检索）
3. **knowledge_base** - 知识库表
4. **rag_sessions** - RAG 会话表
5. **rag_messages** - RAG 消息表

## 注意事项

- 脚本使用 `IF NOT EXISTS`，可以安全地重复执行
- `vector_embeddings` 表需要 pgvector 扩展，如果未安装，该表创建可能会失败（可以暂时跳过）
- 部分表使用 UUID 类型，确保 PostgreSQL 支持 UUID 扩展

## 验证

执行以下 SQL 确认表已创建：

```sql
SELECT table_name 
FROM information_schema.tables 
WHERE table_schema = 'public' 
AND table_name IN ('text_storage', 'vector_embeddings', 'knowledge_base', 'rag_sessions', 'rag_messages');
```

## 当前测试状态

即使没有执行补充表脚本，文件上传和解析功能仍然可以正常工作。`text_storage` 表的记录失败不会影响主要流程，只是无法记录文本存储路径。

完整的测试流程需要：
1. 基础表（`init.sql`）- 必需
2. 补充表（`supplement_tables.sql`）- 推荐
3. RAG 表（`rag_tables.sql`）- 可选（用于 RAG 功能）
