# 数据库补充表初始化 ## 概述 如果您在运行测试时遇到 `relation "text_storage" does not exist` 错误,说明需要执行补充表初始化脚本。 ## 初始化步骤 ### 方法 1:使用 psql 命令行 ```bash # 连接到数据库并执行脚本 psql -U -d lingyue_zhibao -f backend/sql/supplement_tables.sql ``` ### 方法 2:使用数据库客户端工具 1. 打开您的数据库客户端(如 DBeaver、pgAdmin 等) 2. 连接到 `lingyue_zhibao` 数据库 3. 打开并执行 `backend/sql/supplement_tables.sql` 文件 ### 方法 3:使用 Docker 如果您使用 Docker Compose: ```bash # 进入 PostgreSQL 容器 docker exec -it bash # 在容器内执行 psql -U postgres -d lingyue_zhibao -f /path/to/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 功能)