Initial commit: 国土空间规划课程智能体 v1.0
单容器 Docker 架构的国土空间规划课程智能问答系统,集成 FastAPI 后端与 Next.js 前端。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
"""
|
||||
迁移孤立文档到默认知识库
|
||||
"""
|
||||
from sqlalchemy.orm import Session
|
||||
from ..core.database import get_db
|
||||
from ..models.user import User
|
||||
from ..models.knowledge_base import KnowledgeBase
|
||||
from ..models.document import Document
|
||||
|
||||
|
||||
def migrate_orphaned_documents():
|
||||
"""将没有知识库的文档迁移到用户的默认知识库"""
|
||||
db = next(get_db())
|
||||
|
||||
try:
|
||||
# 获取所有用户
|
||||
users = db.query(User).all()
|
||||
|
||||
for user in users:
|
||||
# 检查用户是否有孤立文档
|
||||
orphaned_docs = db.query(Document).filter(
|
||||
Document.user_id == user.id,
|
||||
Document.knowledge_base_id.is_(None)
|
||||
).all()
|
||||
|
||||
if orphaned_docs:
|
||||
# 创建默认知识库
|
||||
default_kb = KnowledgeBase(
|
||||
name="默认知识库",
|
||||
description="系统自动创建的默认知识库,包含之前上传的文档",
|
||||
user_id=user.id,
|
||||
is_system=True
|
||||
)
|
||||
db.add(default_kb)
|
||||
db.commit()
|
||||
db.refresh(default_kb)
|
||||
|
||||
# 将孤立文档迁移到默认知识库
|
||||
for doc in orphaned_docs:
|
||||
doc.knowledge_base_id = default_kb.id
|
||||
|
||||
db.commit()
|
||||
print(f"用户 {user.username} 的 {len(orphaned_docs)} 个文档已迁移到默认知识库")
|
||||
|
||||
print("孤立文档迁移完成")
|
||||
|
||||
except Exception as e:
|
||||
print(f"迁移失败: {str(e)}")
|
||||
db.rollback()
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
migrate_orphaned_documents()
|
||||
Reference in New Issue
Block a user