You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"\n\nCREATE INDEX \"file_hash_idx\" ON \"files\" USING btree (\"file_hash\");\n\n-- 步骤 1: 添加可为空的 user_id 列到所有需要的表\nALTER TABLE \"global_files\" ADD COLUMN IF NOT EXISTS \"creator\" text;",
331
+
"\nALTER TABLE \"knowledge_base_files\" ADD COLUMN IF NOT EXISTS \"user_id\" text;",
332
+
"\nALTER TABLE \"message_chunks\" ADD COLUMN IF NOT EXISTS \"user_id\" text;",
333
+
"\nALTER TABLE \"message_plugins\" ADD COLUMN IF NOT EXISTS \"user_id\" text;",
334
+
"\nALTER TABLE \"message_queries\" ADD COLUMN IF NOT EXISTS \"user_id\" text;",
335
+
"\nALTER TABLE \"message_query_chunks\" ADD COLUMN IF NOT EXISTS \"user_id\" text;",
336
+
"\nALTER TABLE \"message_tts\" ADD COLUMN IF NOT EXISTS \"user_id\" text;",
337
+
"\nALTER TABLE \"message_translates\" ADD COLUMN IF NOT EXISTS \"user_id\" text;",
338
+
"\nALTER TABLE \"messages_files\" ADD COLUMN IF NOT EXISTS \"user_id\" text;",
339
+
"\nALTER TABLE \"agents_to_sessions\" ADD COLUMN IF NOT EXISTS \"user_id\" text;",
331
340
"\nALTER TABLE \"file_chunks\" ADD COLUMN IF NOT EXISTS \"user_id\" text;",
332
341
"\nALTER TABLE \"files_to_sessions\" ADD COLUMN IF NOT EXISTS \"user_id\" text;",
333
-
"\n\n-- Step 2: Populate user_id fields\n-- Populate user_id for agents_to_sessions\nUPDATE \"agents_to_sessions\" AS ats\nSET \"user_id\" = a.\"user_id\"\nFROM \"agents\" AS a\nWHERE ats.\"agent_id\" = a.\"id\";",
334
-
"\n\n-- Populate user_id for file_chunks\nUPDATE \"file_chunks\" AS fc\nSET \"user_id\" = f.\"user_id\"\nFROM \"files\" AS f\nWHERE fc.\"file_id\" = f.\"id\";",
335
-
"\n\n-- Populate user_id for files_to_sessions\nUPDATE \"files_to_sessions\" AS fts\nSET \"user_id\" = f.\"user_id\"\nFROM \"files\" AS f\nWHERE fts.\"file_id\" = f.\"id\";",
336
-
"\n\n-- Get user_id from sessions table (for handling potential NULL values)\nUPDATE \"files_to_sessions\" AS fts\nSET \"user_id\" = s.\"user_id\"\nFROM \"sessions\" AS s\nWHERE fts.\"session_id\" = s.\"id\" AND fts.\"user_id\" IS NULL;",
337
-
"\n\nUPDATE \"agents_to_sessions\" AS ats\nSET \"user_id\" = s.\"user_id\"\nFROM \"sessions\" AS s\nWHERE ats.\"session_id\" = s.\"id\" AND ats.\"user_id\" IS NULL;",
338
-
"\n\n-- Step 3: Add NOT NULL constraints and foreign keys\nALTER TABLE \"agents_to_sessions\" ALTER COLUMN \"user_id\" SET NOT NULL;",
342
+
"\n\n-- 步骤 2: 填充 user_id 字段\n-- 从关联表中获取 user_id\n\n-- 为 knowledge_base_files 填充 user_id\nUPDATE \"knowledge_base_files\" AS kbf\nSET \"user_id\" = kb.\"user_id\"\n FROM \"knowledge_bases\" AS kb\nWHERE kbf.\"knowledge_base_id\" = kb.\"id\";",
343
+
"\n\n-- 为 message_chunks 填充 user_id\nUPDATE \"message_chunks\" AS mc\nSET \"user_id\" = m.\"user_id\"\n FROM \"messages\" AS m\nWHERE mc.\"message_id\" = m.\"id\";",
344
+
"\n\n-- 为 message_plugins 填充 user_id (直接从 messages 表获取)\n-- 修改: 将 LIKE 改为 =\nUPDATE \"message_plugins\" AS mp\nSET \"user_id\" = m.\"user_id\"\n FROM \"messages\" AS m\nWHERE mp.\"id\" = m.\"id\";",
345
+
"\n\n-- 为 message_queries 填充 user_id\nUPDATE \"message_queries\" AS mq\nSET \"user_id\" = m.\"user_id\"\n FROM \"messages\" AS m\nWHERE mq.\"message_id\" = m.\"id\";",
346
+
"\n\n-- 为 message_query_chunks 填充 user_id\nUPDATE \"message_query_chunks\" AS mqc\nSET \"user_id\" = mq.\"user_id\"\n FROM \"message_queries\" AS mq\nWHERE mqc.\"query_id\" = mq.\"id\";",
347
+
"\n\n-- 为 message_tts 填充 user_id\nUPDATE \"message_tts\" AS mt\nSET \"user_id\" = m.\"user_id\"\n FROM \"messages\" AS m\nWHERE mt.\"id\" = m.\"id\";",
348
+
"\n\n-- 为 message_translates 填充 user_id\nUPDATE \"message_translates\" AS mt\nSET \"user_id\" = m.\"user_id\"\n FROM \"messages\" AS m\nWHERE mt.\"id\" = m.\"id\";",
349
+
"\n\n-- 为 messages_files 填充 user_id\nUPDATE \"messages_files\" AS mf\nSET \"user_id\" = m.\"user_id\"\n FROM \"messages\" AS m\nWHERE mf.\"message_id\" = m.\"id\";",
350
+
"\n\n-- 为 global_files 填充 creator (从 files 表获取第一个创建该文件的用户)\nUPDATE \"global_files\" AS gf\nSET \"creator\" = (\n SELECT f.\"user_id\"\n FROM \"files\" AS f\n WHERE f.\"file_hash\" = gf.\"hash_id\"\n ORDER BY f.\"created_at\" ASC\n LIMIT 1\n );",
351
+
"\n\n-- 删除在 files 表中找不到任何用户使用过的 global_files 记录\nDELETE FROM \"global_files\"\nWHERE \"creator\" IS NULL;",
352
+
"\n\n-- 为 agents_to_sessions 填充 user_id\nUPDATE \"agents_to_sessions\" AS ats\nSET \"user_id\" = a.\"user_id\"\n FROM \"agents\" AS a\nWHERE ats.\"agent_id\" = a.\"id\";",
353
+
"\n\n-- 为 file_chunks 填充 user_id\nUPDATE \"file_chunks\" AS fc\nSET \"user_id\" = f.\"user_id\"\n FROM \"files\" AS f\nWHERE fc.\"file_id\" = f.\"id\";",
354
+
"\n\n-- 为 files_to_sessions 填充 user_id\nUPDATE \"files_to_sessions\" AS fts\nSET \"user_id\" = f.\"user_id\"\n FROM \"files\" AS f\nWHERE fts.\"file_id\" = f.\"id\";",
355
+
"\n\n-- 从 sessions 表获取 user_id (处理潜在的 NULL 值)\nUPDATE \"files_to_sessions\" AS fts\nSET \"user_id\" = s.\"user_id\"\n FROM \"sessions\" AS s\nWHERE fts.\"session_id\" = s.\"id\" AND fts.\"user_id\" IS NULL;",
356
+
"\n\nUPDATE \"agents_to_sessions\" AS ats\nSET \"user_id\" = s.\"user_id\"\n FROM \"sessions\" AS s\nWHERE ats.\"session_id\" = s.\"id\" AND ats.\"user_id\" IS NULL;",
357
+
"\n\n-- 步骤 3: 检查是否有未填充的记录\nDO $$\nDECLARE\nkb_files_count INTEGER;\n msg_chunks_count INTEGER;\n msg_plugins_count INTEGER;\n msg_queries_count INTEGER;\n msg_query_chunks_count INTEGER;\n msg_tts_count INTEGER;\n msg_translates_count INTEGER;\n msgs_files_count INTEGER;\n agents_sessions_count INTEGER;\n file_chunks_count INTEGER;\n files_sessions_count INTEGER;\nBEGIN\nSELECT COUNT(*) INTO kb_files_count FROM \"knowledge_base_files\" WHERE \"user_id\" IS NULL;\nSELECT COUNT(*) INTO msg_chunks_count FROM \"message_chunks\" WHERE \"user_id\" IS NULL;\nSELECT COUNT(*) INTO msg_plugins_count FROM \"message_plugins\" WHERE \"user_id\" IS NULL;\nSELECT COUNT(*) INTO msg_queries_count FROM \"message_queries\" WHERE \"user_id\" IS NULL;\nSELECT COUNT(*) INTO msg_query_chunks_count FROM \"message_query_chunks\" WHERE \"user_id\" IS NULL;\nSELECT COUNT(*) INTO msg_tts_count FROM \"message_tts\" WHERE \"user_id\" IS NULL;\nSELECT COUNT(*) INTO msg_translates_count FROM \"message_translates\" WHERE \"user_id\" IS NULL;\nSELECT COUNT(*) INTO msgs_files_count FROM \"messages_files\" WHERE \"user_id\" IS NULL;\nSELECT COUNT(*) INTO agents_sessions_count FROM \"agents_to_sessions\" WHERE \"user_id\" IS NULL;\nSELECT COUNT(*) INTO file_chunks_count FROM \"file_chunks\" WHERE \"user_id\" IS NULL;\nSELECT COUNT(*) INTO files_sessions_count FROM \"files_to_sessions\" WHERE \"user_id\" IS NULL;\n\nIF kb_files_count > 0 OR msg_chunks_count > 0 OR msg_plugins_count > 0 OR\n msg_queries_count > 0 OR msg_query_chunks_count > 0 OR msg_tts_count > 0 OR\n msg_translates_count > 0 OR msgs_files_count > 0 OR agents_sessions_count > 0 OR\n file_chunks_count > 0 OR files_sessions_count > 0 THEN\n RAISE EXCEPTION 'There are records with NULL user_id values that could not be populated';\nEND IF;\nEND $$;",
358
+
"\n\n-- 步骤 4: 添加 NOT NULL 约束和外键\nALTER TABLE \"knowledge_base_files\" ALTER COLUMN \"user_id\" SET NOT NULL;",
359
+
"\nALTER TABLE \"message_chunks\" ALTER COLUMN \"user_id\" SET NOT NULL;",
360
+
"\nALTER TABLE \"message_plugins\" ALTER COLUMN \"user_id\" SET NOT NULL;",
361
+
"\nALTER TABLE \"message_queries\" ALTER COLUMN \"user_id\" SET NOT NULL;",
362
+
"\nALTER TABLE \"message_query_chunks\" ALTER COLUMN \"user_id\" SET NOT NULL;",
363
+
"\nALTER TABLE \"message_tts\" ALTER COLUMN \"user_id\" SET NOT NULL;",
364
+
"\nALTER TABLE \"message_translates\" ALTER COLUMN \"user_id\" SET NOT NULL;",
365
+
"\nALTER TABLE \"messages_files\" ALTER COLUMN \"user_id\" SET NOT NULL;",
366
+
"\nALTER TABLE \"agents_to_sessions\" ALTER COLUMN \"user_id\" SET NOT NULL;",
339
367
"\nALTER TABLE \"file_chunks\" ALTER COLUMN \"user_id\" SET NOT NULL;",
340
368
"\nALTER TABLE \"files_to_sessions\" ALTER COLUMN \"user_id\" SET NOT NULL;",
341
-
"\n\nALTER TABLE \"agents_to_sessions\"\n ADD CONSTRAINT \"agents_to_sessions_user_id_users_id_fk\"\n FOREIGN KEY (\"user_id\") REFERENCES \"public\".\"users\"(\"id\")\n ON DELETE CASCADE ON UPDATE NO ACTION;",
342
-
"\n\nALTER TABLE \"file_chunks\"\n ADD CONSTRAINT \"file_chunks_user_id_users_id_fk\"\n FOREIGN KEY (\"user_id\") REFERENCES \"public\".\"users\"(\"id\")\n ON DELETE CASCADE ON UPDATE NO ACTION;",
343
-
"\n\nALTER TABLE \"files_to_sessions\"\n ADD CONSTRAINT \"files_to_sessions_user_id_users_id_fk\"\n FOREIGN KEY (\"user_id\") REFERENCES \"public\".\"users\"(\"id\")\n ON DELETE CASCADE ON UPDATE NO ACTION;",
369
+
"\n\n-- 添加外键约束\nALTER TABLE \"global_files\"\n ADD CONSTRAINT \"global_files_creator_users_id_fk\"\n FOREIGN KEY (\"creator\") REFERENCES \"public\".\"users\"(\"id\")\n ON DELETE SET NULL ON UPDATE NO ACTION;",
370
+
"\n\nALTER TABLE \"knowledge_base_files\"\n ADD CONSTRAINT \"knowledge_base_files_user_id_users_id_fk\"\n FOREIGN KEY (\"user_id\") REFERENCES \"public\".\"users\"(\"id\")\n ON DELETE CASCADE ON UPDATE NO ACTION;",
371
+
"\n\nALTER TABLE \"message_chunks\"\n ADD CONSTRAINT \"message_chunks_user_id_users_id_fk\"\n FOREIGN KEY (\"user_id\") REFERENCES \"public\".\"users\"(\"id\")\n ON DELETE CASCADE ON UPDATE NO ACTION;",
372
+
"\n\nALTER TABLE \"message_plugins\"\n ADD CONSTRAINT \"message_plugins_user_id_users_id_fk\"\n FOREIGN KEY (\"user_id\") REFERENCES \"public\".\"users\"(\"id\")\n ON DELETE CASCADE ON UPDATE NO ACTION;",
373
+
"\n\nALTER TABLE \"message_queries\"\n ADD CONSTRAINT \"message_queries_user_id_users_id_fk\"\n FOREIGN KEY (\"user_id\") REFERENCES \"public\".\"users\"(\"id\")\n ON DELETE CASCADE ON UPDATE NO ACTION;",
374
+
"\n\nALTER TABLE \"message_query_chunks\"\n ADD CONSTRAINT \"message_query_chunks_user_id_users_id_fk\"\n FOREIGN KEY (\"user_id\") REFERENCES \"public\".\"users\"(\"id\")\n ON DELETE CASCADE ON UPDATE NO ACTION;",
375
+
"\n\nALTER TABLE \"message_tts\"\n ADD CONSTRAINT \"message_tts_user_id_users_id_fk\"\n FOREIGN KEY (\"user_id\") REFERENCES \"public\".\"users\"(\"id\")\n ON DELETE CASCADE ON UPDATE NO ACTION;",
376
+
"\n\nALTER TABLE \"message_translates\"\n ADD CONSTRAINT \"message_translates_user_id_users_id_fk\"\n FOREIGN KEY (\"user_id\") REFERENCES \"public\".\"users\"(\"id\")\n ON DELETE CASCADE ON UPDATE NO ACTION;",
377
+
"\n\nALTER TABLE \"messages_files\"\n ADD CONSTRAINT \"messages_files_user_id_users_id_fk\"\n FOREIGN KEY (\"user_id\") REFERENCES \"public\".\"users\"(\"id\")\n ON DELETE CASCADE ON UPDATE NO ACTION;",
378
+
"\n\nALTER TABLE \"agents_to_sessions\"\n ADD CONSTRAINT \"agents_to_sessions_user_id_users_id_fk\"\n FOREIGN KEY (\"user_id\") REFERENCES \"public\".\"users\"(\"id\")\n ON DELETE CASCADE ON UPDATE NO ACTION;",
379
+
"\n\nALTER TABLE \"file_chunks\"\n ADD CONSTRAINT \"file_chunks_user_id_users_id_fk\"\n FOREIGN KEY (\"user_id\") REFERENCES \"public\".\"users\"(\"id\")\n ON DELETE CASCADE ON UPDATE NO ACTION;",
380
+
"\n\nALTER TABLE \"files_to_sessions\"\n ADD CONSTRAINT \"files_to_sessions_user_id_users_id_fk\"\n FOREIGN KEY (\"user_id\") REFERENCES \"public\".\"users\"(\"id\")\n ON DELETE CASCADE ON UPDATE NO ACTION;",
0 commit comments