fix(database): 扩展 db_id 字段长度至 80 字符,以支持更长的 ID #499
This commit is contained in:
parent
4a0110d1a7
commit
b5c14a6a6f
@ -1130,9 +1130,9 @@ async def upload_file(
|
|||||||
timestamp = int(time.time() * 1000)
|
timestamp = int(time.time() * 1000)
|
||||||
minio_filename = f"{basename}_{timestamp}{ext}"
|
minio_filename = f"{basename}_{timestamp}{ext}"
|
||||||
|
|
||||||
# 生成符合MinIO规范的存储桶名称(将下划线替换为连字符)
|
# 生成符合MinIO规范的存储桶名称(将下划线替换为连字符,截取长度以满足MinIO的63字符限制)
|
||||||
if db_id:
|
if db_id:
|
||||||
bucket_name = f"ref-{db_id.replace('_', '-')}"
|
bucket_name = f"ref-{db_id[:32].replace('_', '-')}"
|
||||||
else:
|
else:
|
||||||
bucket_name = "default-uploads"
|
bucket_name = "default-uploads"
|
||||||
|
|
||||||
|
|||||||
@ -142,6 +142,11 @@ class PostgresManager(metaclass=SingletonMeta):
|
|||||||
"ALTER TABLE IF EXISTS evaluation_result_details ADD COLUMN IF NOT EXISTS generated_answer TEXT",
|
"ALTER TABLE IF EXISTS evaluation_result_details ADD COLUMN IF NOT EXISTS generated_answer TEXT",
|
||||||
"ALTER TABLE IF EXISTS evaluation_result_details ADD COLUMN IF NOT EXISTS retrieved_chunks JSONB",
|
"ALTER TABLE IF EXISTS evaluation_result_details ADD COLUMN IF NOT EXISTS retrieved_chunks JSONB",
|
||||||
"ALTER TABLE IF EXISTS evaluation_result_details ADD COLUMN IF NOT EXISTS metrics JSONB",
|
"ALTER TABLE IF EXISTS evaluation_result_details ADD COLUMN IF NOT EXISTS metrics JSONB",
|
||||||
|
# 扩展 db_id 字段长度以支持最长 75 字符的 ID(kb_private_ + 64字符hash)
|
||||||
|
"ALTER TABLE IF EXISTS knowledge_bases ALTER COLUMN db_id TYPE VARCHAR(80)",
|
||||||
|
"ALTER TABLE IF EXISTS knowledge_files ALTER COLUMN db_id TYPE VARCHAR(80)",
|
||||||
|
"ALTER TABLE IF EXISTS evaluation_benchmarks ALTER COLUMN db_id TYPE VARCHAR(80)",
|
||||||
|
"ALTER TABLE IF EXISTS evaluation_results ALTER COLUMN db_id TYPE VARCHAR(80)",
|
||||||
"CREATE INDEX IF NOT EXISTS idx_kb_type ON knowledge_bases(kb_type)",
|
"CREATE INDEX IF NOT EXISTS idx_kb_type ON knowledge_bases(kb_type)",
|
||||||
"CREATE INDEX IF NOT EXISTS idx_kb_name ON knowledge_bases(name)",
|
"CREATE INDEX IF NOT EXISTS idx_kb_name ON knowledge_bases(name)",
|
||||||
"CREATE INDEX IF NOT EXISTS idx_kf_db_id ON knowledge_files(db_id)",
|
"CREATE INDEX IF NOT EXISTS idx_kf_db_id ON knowledge_files(db_id)",
|
||||||
|
|||||||
@ -28,7 +28,7 @@ class KnowledgeBase(Base):
|
|||||||
__table_args__ = (UniqueConstraint("db_id", name="uq_knowledge_bases_db_id"),)
|
__table_args__ = (UniqueConstraint("db_id", name="uq_knowledge_bases_db_id"),)
|
||||||
|
|
||||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||||
db_id = Column(String(64), unique=True, nullable=False, index=True)
|
db_id = Column(String(80), unique=True, nullable=False, index=True)
|
||||||
name = Column(String(255), nullable=False, index=True)
|
name = Column(String(255), nullable=False, index=True)
|
||||||
description = Column(Text)
|
description = Column(Text)
|
||||||
kb_type = Column(String(32), nullable=False, index=True)
|
kb_type = Column(String(32), nullable=False, index=True)
|
||||||
@ -51,7 +51,7 @@ class KnowledgeFile(Base):
|
|||||||
|
|
||||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||||
file_id = Column(String(64), unique=True, nullable=False, index=True)
|
file_id = Column(String(64), unique=True, nullable=False, index=True)
|
||||||
db_id = Column(String(64), ForeignKey("knowledge_bases.db_id", ondelete="CASCADE"), nullable=False, index=True)
|
db_id = Column(String(80), ForeignKey("knowledge_bases.db_id", ondelete="CASCADE"), nullable=False, index=True)
|
||||||
parent_id = Column(String(64), ForeignKey("knowledge_files.file_id", ondelete="SET NULL"), index=True)
|
parent_id = Column(String(64), ForeignKey("knowledge_files.file_id", ondelete="SET NULL"), index=True)
|
||||||
filename = Column(String(512), nullable=False)
|
filename = Column(String(512), nullable=False)
|
||||||
original_filename = Column(String(512))
|
original_filename = Column(String(512))
|
||||||
@ -80,7 +80,7 @@ class EvaluationBenchmark(Base):
|
|||||||
|
|
||||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||||
benchmark_id = Column(String(64), unique=True, nullable=False, index=True)
|
benchmark_id = Column(String(64), unique=True, nullable=False, index=True)
|
||||||
db_id = Column(String(64), ForeignKey("knowledge_bases.db_id", ondelete="CASCADE"), nullable=False, index=True)
|
db_id = Column(String(80), ForeignKey("knowledge_bases.db_id", ondelete="CASCADE"), nullable=False, index=True)
|
||||||
name = Column(String(255), nullable=False)
|
name = Column(String(255), nullable=False)
|
||||||
description = Column(Text)
|
description = Column(Text)
|
||||||
question_count = Column(Integer, default=0)
|
question_count = Column(Integer, default=0)
|
||||||
@ -100,7 +100,7 @@ class EvaluationResult(Base):
|
|||||||
|
|
||||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||||
task_id = Column(String(64), unique=True, nullable=False, index=True)
|
task_id = Column(String(64), unique=True, nullable=False, index=True)
|
||||||
db_id = Column(String(64), ForeignKey("knowledge_bases.db_id", ondelete="CASCADE"), nullable=False, index=True)
|
db_id = Column(String(80), ForeignKey("knowledge_bases.db_id", ondelete="CASCADE"), nullable=False, index=True)
|
||||||
benchmark_id = Column(
|
benchmark_id = Column(
|
||||||
String(64),
|
String(64),
|
||||||
ForeignKey("evaluation_benchmarks.benchmark_id", ondelete="SET NULL"),
|
ForeignKey("evaluation_benchmarks.benchmark_id", ondelete="SET NULL"),
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user