2118 lines
55 KiB
SQL
2118 lines
55 KiB
SQL
--
|
||
-- PostgreSQL database dump
|
||
--
|
||
|
||
\restrict IIs1ywVfui7Zb3f5SRgOBwj2LGJXpFF5jpVnQbpR7cCgjNpjBLehhEAmULW9yma
|
||
|
||
-- Dumped from database version 17.4 (Debian 17.4-1.pgdg120+2)
|
||
-- Dumped by pg_dump version 18.1
|
||
|
||
SET statement_timeout = 0;
|
||
SET lock_timeout = 0;
|
||
SET idle_in_transaction_session_timeout = 0;
|
||
SET transaction_timeout = 0;
|
||
SET client_encoding = 'UTF8';
|
||
SET standard_conforming_strings = on;
|
||
SELECT pg_catalog.set_config('search_path', '', false);
|
||
SET check_function_bodies = false;
|
||
SET xmloption = content;
|
||
SET client_min_messages = warning;
|
||
SET row_security = off;
|
||
|
||
SET default_tablespace = '';
|
||
|
||
SET default_table_access_method = heap;
|
||
|
||
--
|
||
-- Name: chat_message_file; Type: TABLE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE TABLE public.chat_message_file (
|
||
id integer NOT NULL,
|
||
thread_id character varying(255) NOT NULL,
|
||
checkpoint_id character varying(255) NOT NULL,
|
||
message_index integer NOT NULL,
|
||
file_id integer NOT NULL,
|
||
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
|
||
);
|
||
|
||
|
||
--
|
||
-- Name: chat_message_file_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE SEQUENCE public.chat_message_file_id_seq
|
||
AS integer
|
||
START WITH 1
|
||
INCREMENT BY 1
|
||
NO MINVALUE
|
||
NO MAXVALUE
|
||
CACHE 1;
|
||
|
||
|
||
--
|
||
-- Name: chat_message_file_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER SEQUENCE public.chat_message_file_id_seq OWNED BY public.chat_message_file.id;
|
||
|
||
|
||
--
|
||
-- Name: chat_messages; Type: TABLE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE TABLE public.chat_messages (
|
||
id integer NOT NULL,
|
||
thread_id character varying(255) NOT NULL,
|
||
checkpoint_id character varying(255) NOT NULL,
|
||
message_index integer NOT NULL,
|
||
role character varying(20) NOT NULL,
|
||
content text NOT NULL,
|
||
injected_content text,
|
||
has_files boolean DEFAULT false,
|
||
metadata jsonb,
|
||
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
|
||
name character varying(255)
|
||
);
|
||
|
||
|
||
--
|
||
-- Name: TABLE chat_messages; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON TABLE public.chat_messages IS '聊天消息表,存储用户原始消息和AI响应的关键信息';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN chat_messages.thread_id; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.chat_messages.thread_id IS '会话线程ID';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN chat_messages.checkpoint_id; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.chat_messages.checkpoint_id IS '关联的checkpoint ID';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN chat_messages.message_index; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.chat_messages.message_index IS '消息在checkpoint中的索引(从0开始)';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN chat_messages.role; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.chat_messages.role IS '消息角色:user、assistant、system、tool';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN chat_messages.content; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.chat_messages.content IS '用户的原始问题或AI的响应';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN chat_messages.injected_content; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.chat_messages.injected_content IS '注入给AI的完整内容(包含文件内容)';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN chat_messages.has_files; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.chat_messages.has_files IS '是否关联了文件';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN chat_messages.metadata; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.chat_messages.metadata IS '额外信息:token、模型、推理内容等';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN chat_messages.name; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.chat_messages.name IS '工具消息时的工具名称(如 internet_search、text_to_image)';
|
||
|
||
|
||
--
|
||
-- Name: chat_messages_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE SEQUENCE public.chat_messages_id_seq
|
||
AS integer
|
||
START WITH 1
|
||
INCREMENT BY 1
|
||
NO MINVALUE
|
||
NO MAXVALUE
|
||
CACHE 1;
|
||
|
||
|
||
--
|
||
-- Name: chat_messages_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER SEQUENCE public.chat_messages_id_seq OWNED BY public.chat_messages.id;
|
||
|
||
|
||
--
|
||
-- Name: chat_thread_chunk; Type: TABLE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE TABLE public.chat_thread_chunk (
|
||
id integer NOT NULL,
|
||
file_id integer NOT NULL,
|
||
thread_id character varying(255) NOT NULL,
|
||
chunk_index integer NOT NULL,
|
||
content text NOT NULL,
|
||
metadata jsonb,
|
||
vector_id character varying(255),
|
||
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
|
||
summary text
|
||
);
|
||
|
||
|
||
--
|
||
-- Name: chat_thread_chunk_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE SEQUENCE public.chat_thread_chunk_id_seq
|
||
AS integer
|
||
START WITH 1
|
||
INCREMENT BY 1
|
||
NO MINVALUE
|
||
NO MAXVALUE
|
||
CACHE 1;
|
||
|
||
|
||
--
|
||
-- Name: chat_thread_chunk_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER SEQUENCE public.chat_thread_chunk_id_seq OWNED BY public.chat_thread_chunk.id;
|
||
|
||
|
||
--
|
||
-- Name: chat_thread_file; Type: TABLE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE TABLE public.chat_thread_file (
|
||
id integer NOT NULL,
|
||
thread_id character varying(255) NOT NULL,
|
||
user_id integer NOT NULL,
|
||
file_name character varying(255) NOT NULL,
|
||
file_path character varying(500) NOT NULL,
|
||
file_size integer DEFAULT 0,
|
||
file_type character varying(50) DEFAULT 'pdf'::character varying,
|
||
status character varying(20) DEFAULT 'processing'::character varying,
|
||
chunk_count integer DEFAULT 0,
|
||
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
|
||
updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
|
||
is_deleted boolean DEFAULT false,
|
||
deleted_at timestamp with time zone,
|
||
progress_percent smallint DEFAULT 0 NOT NULL,
|
||
processing_stage character varying(50),
|
||
CONSTRAINT ck_chat_thread_file_progress_percent CHECK (((progress_percent >= 0) AND (progress_percent <= 100)))
|
||
);
|
||
|
||
|
||
--
|
||
-- Name: COLUMN chat_thread_file.progress_percent; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.chat_thread_file.progress_percent IS '处理进度 0-100';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN chat_thread_file.processing_stage; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.chat_thread_file.processing_stage IS 'processing 阶段';
|
||
|
||
|
||
--
|
||
-- Name: chat_thread_file_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE SEQUENCE public.chat_thread_file_id_seq
|
||
AS integer
|
||
START WITH 1
|
||
INCREMENT BY 1
|
||
NO MINVALUE
|
||
NO MAXVALUE
|
||
CACHE 1;
|
||
|
||
|
||
--
|
||
-- Name: chat_thread_file_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER SEQUENCE public.chat_thread_file_id_seq OWNED BY public.chat_thread_file.id;
|
||
|
||
|
||
--
|
||
-- Name: chat_threads; Type: TABLE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE TABLE public.chat_threads (
|
||
id integer NOT NULL,
|
||
thread_id character varying(255) NOT NULL,
|
||
user_id integer NOT NULL,
|
||
title character varying(50) NOT NULL,
|
||
first_query text NOT NULL,
|
||
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
|
||
updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
|
||
message_count integer DEFAULT 1,
|
||
is_deleted boolean DEFAULT false,
|
||
knowledge_base_id integer,
|
||
novel_graph_id integer,
|
||
knowledge_graph_id integer,
|
||
ip character varying(128)
|
||
);
|
||
|
||
|
||
--
|
||
-- Name: TABLE chat_threads; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON TABLE public.chat_threads IS '聊天会话记录表,记录每个用户的会话基本信息';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN chat_threads.id; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.chat_threads.id IS '主键 ID';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN chat_threads.thread_id; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.chat_threads.thread_id IS '会话线程 ID(UUID 格式)';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN chat_threads.user_id; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.chat_threads.user_id IS '用户 ID,关联 user_list 表';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN chat_threads.title; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.chat_threads.title IS '会话标题(首次请求内容的前10个字)';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN chat_threads.first_query; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.chat_threads.first_query IS '首次请求的完整内容';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN chat_threads.created_at; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.chat_threads.created_at IS '会话创建时间';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN chat_threads.updated_at; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.chat_threads.updated_at IS '最后更新时间';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN chat_threads.message_count; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.chat_threads.message_count IS '该会话的消息总数';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN chat_threads.is_deleted; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.chat_threads.is_deleted IS '是否已删除(软删除标记)';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN chat_threads.knowledge_graph_id; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.chat_threads.knowledge_graph_id IS '绑定的知识图谱 graphs.id,与 knowledge_base_id 二选一';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN chat_threads.ip; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.chat_threads.ip IS '最近一次发起聊天时的客户端 IP(可选)';
|
||
|
||
|
||
--
|
||
-- Name: chat_threads_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE SEQUENCE public.chat_threads_id_seq
|
||
AS integer
|
||
START WITH 1
|
||
INCREMENT BY 1
|
||
NO MINVALUE
|
||
NO MAXVALUE
|
||
CACHE 1;
|
||
|
||
|
||
--
|
||
-- Name: chat_threads_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER SEQUENCE public.chat_threads_id_seq OWNED BY public.chat_threads.id;
|
||
|
||
|
||
--
|
||
-- Name: checkpoint_blobs; Type: TABLE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE TABLE public.checkpoint_blobs (
|
||
thread_id text NOT NULL,
|
||
checkpoint_ns text DEFAULT ''::text NOT NULL,
|
||
channel text NOT NULL,
|
||
version text NOT NULL,
|
||
type text NOT NULL,
|
||
blob bytea
|
||
);
|
||
|
||
|
||
--
|
||
-- Name: checkpoint_migrations; Type: TABLE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE TABLE public.checkpoint_migrations (
|
||
v integer NOT NULL
|
||
);
|
||
|
||
|
||
--
|
||
-- Name: checkpoint_writes; Type: TABLE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE TABLE public.checkpoint_writes (
|
||
thread_id text NOT NULL,
|
||
checkpoint_ns text DEFAULT ''::text NOT NULL,
|
||
checkpoint_id text NOT NULL,
|
||
task_id text NOT NULL,
|
||
idx integer NOT NULL,
|
||
channel text NOT NULL,
|
||
type text,
|
||
blob bytea NOT NULL,
|
||
task_path text DEFAULT ''::text NOT NULL
|
||
);
|
||
|
||
|
||
--
|
||
-- Name: checkpoints; Type: TABLE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE TABLE public.checkpoints (
|
||
thread_id text NOT NULL,
|
||
checkpoint_ns text DEFAULT ''::text NOT NULL,
|
||
checkpoint_id text NOT NULL,
|
||
parent_checkpoint_id text,
|
||
type text,
|
||
checkpoint jsonb NOT NULL,
|
||
metadata jsonb DEFAULT '{}'::jsonb NOT NULL
|
||
);
|
||
|
||
|
||
--
|
||
-- Name: department; Type: TABLE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE TABLE public.department (
|
||
id integer NOT NULL,
|
||
enterprise_id integer NOT NULL,
|
||
name character varying(255) NOT NULL,
|
||
parent_id integer,
|
||
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||
updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||
leader_user_id integer
|
||
);
|
||
|
||
|
||
--
|
||
-- Name: TABLE department; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON TABLE public.department IS '部门';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN department.leader_user_id; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.department.leader_user_id IS '部门负责人 user_id,对应 role=leader 的用户';
|
||
|
||
|
||
--
|
||
-- Name: department_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE SEQUENCE public.department_id_seq
|
||
AS integer
|
||
START WITH 1
|
||
INCREMENT BY 1
|
||
NO MINVALUE
|
||
NO MAXVALUE
|
||
CACHE 1;
|
||
|
||
|
||
--
|
||
-- Name: department_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER SEQUENCE public.department_id_seq OWNED BY public.department.id;
|
||
|
||
|
||
--
|
||
-- Name: enterprise; Type: TABLE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE TABLE public.enterprise (
|
||
id integer NOT NULL,
|
||
name character varying(255) NOT NULL,
|
||
code character varying(64),
|
||
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||
updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||
ai_display_name character varying(128) DEFAULT '智能助手 AI'::character varying NOT NULL
|
||
);
|
||
|
||
|
||
--
|
||
-- Name: TABLE enterprise; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON TABLE public.enterprise IS '企业(单租户部署通常仅一条记录)';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN enterprise.ai_display_name; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.enterprise.ai_display_name IS 'AI 助手对外展示名称(写入系统提示词等),管理端可修改';
|
||
|
||
|
||
--
|
||
-- Name: enterprise_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE SEQUENCE public.enterprise_id_seq
|
||
AS integer
|
||
START WITH 1
|
||
INCREMENT BY 1
|
||
NO MINVALUE
|
||
NO MAXVALUE
|
||
CACHE 1;
|
||
|
||
|
||
--
|
||
-- Name: enterprise_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER SEQUENCE public.enterprise_id_seq OWNED BY public.enterprise.id;
|
||
|
||
|
||
--
|
||
-- Name: graphs; Type: TABLE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE TABLE public.graphs (
|
||
id integer NOT NULL,
|
||
user_id integer NOT NULL,
|
||
name character varying(255) NOT NULL,
|
||
description text,
|
||
csv_file_name character varying(255),
|
||
node_count integer DEFAULT 0,
|
||
edge_count integer DEFAULT 0,
|
||
neo4j_graph_id character varying(100) NOT NULL,
|
||
graph_type character varying(20) DEFAULT 'knowledge'::character varying NOT NULL,
|
||
build_status character varying(20),
|
||
build_error text,
|
||
rag_chunk_count integer DEFAULT 0 NOT NULL,
|
||
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
|
||
updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
|
||
enterprise_id integer NOT NULL,
|
||
department_id integer,
|
||
creator_id integer NOT NULL,
|
||
visibility character varying(32) DEFAULT 'private'::character varying NOT NULL,
|
||
progress_percent smallint DEFAULT 0 NOT NULL,
|
||
processing_stage character varying(50),
|
||
CONSTRAINT ck_graphs_progress_percent CHECK (((progress_percent >= 0) AND (progress_percent <= 100))),
|
||
CONSTRAINT ck_graphs_visibility CHECK (((visibility)::text = ANY ((ARRAY['private'::character varying, 'department'::character varying, 'enterprise'::character varying])::text[])))
|
||
);
|
||
|
||
|
||
--
|
||
-- Name: TABLE graphs; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON TABLE public.graphs IS '知识图谱元数据表,图数据在 Neo4j;向量块数量见 rag_chunk_count';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN graphs.neo4j_graph_id; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.graphs.neo4j_graph_id IS 'Neo4j 中图谱唯一标识';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN graphs.graph_type; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.graphs.graph_type IS '兼容字段,默认 knowledge';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN graphs.build_status; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.graphs.build_status IS '构建状态:pending/processing/completed/failed';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN graphs.build_error; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.graphs.build_error IS '构建失败时的错误信息';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN graphs.rag_chunk_count; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.graphs.rag_chunk_count IS 'Chroma 中知识图谱 RAG 分块数量';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN graphs.creator_id; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.graphs.creator_id IS '创建者(与 user_id 通常一致,用于权限判断)';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN graphs.visibility; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.graphs.visibility IS 'private | department | enterprise';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN graphs.progress_percent; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.graphs.progress_percent IS '构建进度 0-100';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN graphs.processing_stage; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.graphs.processing_stage IS '构建阶段: extracting/indexing/completed 等';
|
||
|
||
|
||
--
|
||
-- Name: graphs_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE SEQUENCE public.graphs_id_seq
|
||
AS integer
|
||
START WITH 1
|
||
INCREMENT BY 1
|
||
NO MINVALUE
|
||
NO MAXVALUE
|
||
CACHE 1;
|
||
|
||
|
||
--
|
||
-- Name: graphs_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER SEQUENCE public.graphs_id_seq OWNED BY public.graphs.id;
|
||
|
||
|
||
--
|
||
-- Name: kb_audit_log; Type: TABLE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE TABLE public.kb_audit_log (
|
||
id integer NOT NULL,
|
||
enterprise_id integer NOT NULL,
|
||
actor_id integer NOT NULL,
|
||
target_user_id integer,
|
||
department_id integer,
|
||
kb_id integer,
|
||
file_id integer,
|
||
action character varying(50) NOT NULL,
|
||
ip character varying(128),
|
||
user_agent text,
|
||
metadata jsonb,
|
||
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||
);
|
||
|
||
|
||
--
|
||
-- Name: TABLE kb_audit_log; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON TABLE public.kb_audit_log IS '知识库操作审计日志';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN kb_audit_log.action; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.kb_audit_log.action IS 'upload | download | delete | archive | create_kb | delete_kb | permission_change';
|
||
|
||
|
||
--
|
||
-- Name: kb_audit_log_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE SEQUENCE public.kb_audit_log_id_seq
|
||
AS integer
|
||
START WITH 1
|
||
INCREMENT BY 1
|
||
NO MINVALUE
|
||
NO MAXVALUE
|
||
CACHE 1;
|
||
|
||
|
||
--
|
||
-- Name: kb_audit_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER SEQUENCE public.kb_audit_log_id_seq OWNED BY public.kb_audit_log.id;
|
||
|
||
|
||
--
|
||
-- Name: knowledge_base; Type: TABLE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE TABLE public.knowledge_base (
|
||
id integer NOT NULL,
|
||
user_id integer NOT NULL,
|
||
name character varying(255) NOT NULL,
|
||
description text,
|
||
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
|
||
updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
|
||
is_deleted boolean DEFAULT false,
|
||
deleted_at timestamp with time zone,
|
||
enterprise_id integer DEFAULT 1 NOT NULL,
|
||
department_id integer,
|
||
creator_id integer,
|
||
visibility character varying(32) DEFAULT 'private'::character varying NOT NULL,
|
||
CONSTRAINT ck_knowledge_base_visibility CHECK (((visibility)::text = ANY ((ARRAY['private'::character varying, 'department'::character varying, 'enterprise'::character varying])::text[])))
|
||
);
|
||
|
||
|
||
--
|
||
-- Name: COLUMN knowledge_base.creator_id; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.knowledge_base.creator_id IS '创建者(与 user_id 通常一致,用于权限判断)';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN knowledge_base.visibility; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.knowledge_base.visibility IS 'private | department | enterprise';
|
||
|
||
|
||
--
|
||
-- Name: knowledge_base_chunk; Type: TABLE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE TABLE public.knowledge_base_chunk (
|
||
id integer NOT NULL,
|
||
file_id integer NOT NULL,
|
||
knowledge_base_id integer NOT NULL,
|
||
chunk_index integer NOT NULL,
|
||
content text NOT NULL,
|
||
metadata jsonb,
|
||
vector_id character varying(255),
|
||
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
|
||
summary text
|
||
);
|
||
|
||
|
||
--
|
||
-- Name: knowledge_base_chunk_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE SEQUENCE public.knowledge_base_chunk_id_seq
|
||
AS integer
|
||
START WITH 1
|
||
INCREMENT BY 1
|
||
NO MINVALUE
|
||
NO MAXVALUE
|
||
CACHE 1;
|
||
|
||
|
||
--
|
||
-- Name: knowledge_base_chunk_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER SEQUENCE public.knowledge_base_chunk_id_seq OWNED BY public.knowledge_base_chunk.id;
|
||
|
||
|
||
--
|
||
-- Name: knowledge_base_file; Type: TABLE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE TABLE public.knowledge_base_file (
|
||
id integer NOT NULL,
|
||
knowledge_base_id integer NOT NULL,
|
||
user_id integer NOT NULL,
|
||
file_name character varying(255) NOT NULL,
|
||
file_path character varying(500) NOT NULL,
|
||
file_size bigint NOT NULL,
|
||
file_type character varying(50) DEFAULT 'pdf'::character varying NOT NULL,
|
||
status character varying(20) DEFAULT 'processing'::character varying NOT NULL,
|
||
chunk_count integer DEFAULT 0,
|
||
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
|
||
updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
|
||
is_deleted boolean DEFAULT false,
|
||
deleted_at timestamp with time zone,
|
||
progress_percent smallint DEFAULT 0 NOT NULL,
|
||
processing_stage character varying(50),
|
||
CONSTRAINT ck_kb_file_progress_percent CHECK (((progress_percent >= 0) AND (progress_percent <= 100)))
|
||
);
|
||
|
||
|
||
--
|
||
-- Name: COLUMN knowledge_base_file.progress_percent; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.knowledge_base_file.progress_percent IS '处理进度 0-100';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN knowledge_base_file.processing_stage; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.knowledge_base_file.processing_stage IS 'processing 阶段: uploading/parsing/ocr/embedding/summarizing/completed 等';
|
||
|
||
|
||
--
|
||
-- Name: knowledge_base_file_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE SEQUENCE public.knowledge_base_file_id_seq
|
||
AS integer
|
||
START WITH 1
|
||
INCREMENT BY 1
|
||
NO MINVALUE
|
||
NO MAXVALUE
|
||
CACHE 1;
|
||
|
||
|
||
--
|
||
-- Name: knowledge_base_file_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER SEQUENCE public.knowledge_base_file_id_seq OWNED BY public.knowledge_base_file.id;
|
||
|
||
|
||
--
|
||
-- Name: knowledge_base_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE SEQUENCE public.knowledge_base_id_seq
|
||
AS integer
|
||
START WITH 1
|
||
INCREMENT BY 1
|
||
NO MINVALUE
|
||
NO MAXVALUE
|
||
CACHE 1;
|
||
|
||
|
||
--
|
||
-- Name: knowledge_base_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER SEQUENCE public.knowledge_base_id_seq OWNED BY public.knowledge_base.id;
|
||
|
||
|
||
--
|
||
-- Name: knowledge_processing_task; Type: TABLE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE TABLE public.knowledge_processing_task (
|
||
id integer NOT NULL,
|
||
user_id integer NOT NULL,
|
||
knowledge_base_id integer NOT NULL,
|
||
task_name character varying(255) NOT NULL,
|
||
instruction text NOT NULL,
|
||
file_ids integer[] NOT NULL,
|
||
task_type character varying(50) NOT NULL,
|
||
status character varying(20) DEFAULT 'pending'::character varying,
|
||
result text,
|
||
result_file_url text,
|
||
error_message text,
|
||
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
|
||
updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
|
||
started_at timestamp with time zone,
|
||
completed_at timestamp with time zone,
|
||
progress_percent smallint DEFAULT 0 NOT NULL,
|
||
processing_stage character varying(50),
|
||
CONSTRAINT ck_kb_processing_task_progress_percent CHECK (((progress_percent >= 0) AND (progress_percent <= 100)))
|
||
);
|
||
|
||
|
||
--
|
||
-- Name: TABLE knowledge_processing_task; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON TABLE public.knowledge_processing_task IS '知识加工任务表:合并、对比、总结等异步任务';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN knowledge_processing_task.result_file_url; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.knowledge_processing_task.result_file_url IS '加工结果文件的 OSS 下载链接';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN knowledge_processing_task.progress_percent; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.knowledge_processing_task.progress_percent IS '任务进度 0-100';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN knowledge_processing_task.processing_stage; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.knowledge_processing_task.processing_stage IS '任务阶段';
|
||
|
||
|
||
--
|
||
-- Name: knowledge_processing_task_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE SEQUENCE public.knowledge_processing_task_id_seq
|
||
AS integer
|
||
START WITH 1
|
||
INCREMENT BY 1
|
||
NO MINVALUE
|
||
NO MAXVALUE
|
||
CACHE 1;
|
||
|
||
|
||
--
|
||
-- Name: knowledge_processing_task_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER SEQUENCE public.knowledge_processing_task_id_seq OWNED BY public.knowledge_processing_task.id;
|
||
|
||
|
||
--
|
||
-- Name: user_list; Type: TABLE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE TABLE public.user_list (
|
||
id integer NOT NULL,
|
||
username character varying(50) NOT NULL,
|
||
email character varying(255) NOT NULL,
|
||
phone character varying(255) NOT NULL,
|
||
github_id character varying(100),
|
||
github_username character varying(100),
|
||
github_avatar_url text,
|
||
github_access_token text,
|
||
github_token_expires_at timestamp with time zone,
|
||
display_name character varying(100),
|
||
avatar_url text,
|
||
bio text,
|
||
is_active boolean DEFAULT true,
|
||
email_verified boolean DEFAULT false,
|
||
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
|
||
updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
|
||
last_login_at timestamp with time zone,
|
||
hashed_password character varying(255),
|
||
is_search boolean DEFAULT false,
|
||
is_reasoner boolean DEFAULT false,
|
||
enterprise_id integer DEFAULT 1 NOT NULL,
|
||
department_id integer,
|
||
role character varying(32) DEFAULT 'employee'::character varying NOT NULL,
|
||
is_first_login boolean DEFAULT true NOT NULL,
|
||
allow_kb_upload boolean DEFAULT true NOT NULL
|
||
);
|
||
|
||
|
||
--
|
||
-- Name: COLUMN user_list.role; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.user_list.role IS 'admin | leader | employee';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN user_list.is_first_login; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.user_list.is_first_login IS '首次登录可强制改密(可选业务)';
|
||
|
||
|
||
--
|
||
-- Name: COLUMN user_list.allow_kb_upload; Type: COMMENT; Schema: public; Owner: -
|
||
--
|
||
|
||
COMMENT ON COLUMN public.user_list.allow_kb_upload IS '是否允许上传文件到知识库(上级领导或 admin 可关闭)';
|
||
|
||
|
||
--
|
||
-- Name: user_list_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE SEQUENCE public.user_list_id_seq
|
||
AS integer
|
||
START WITH 1
|
||
INCREMENT BY 1
|
||
NO MINVALUE
|
||
NO MAXVALUE
|
||
CACHE 1;
|
||
|
||
|
||
--
|
||
-- Name: user_list_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER SEQUENCE public.user_list_id_seq OWNED BY public.user_list.id;
|
||
|
||
|
||
--
|
||
-- Name: chat_message_file id; Type: DEFAULT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.chat_message_file ALTER COLUMN id SET DEFAULT nextval('public.chat_message_file_id_seq'::regclass);
|
||
|
||
|
||
--
|
||
-- Name: chat_messages id; Type: DEFAULT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.chat_messages ALTER COLUMN id SET DEFAULT nextval('public.chat_messages_id_seq'::regclass);
|
||
|
||
|
||
--
|
||
-- Name: chat_thread_chunk id; Type: DEFAULT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.chat_thread_chunk ALTER COLUMN id SET DEFAULT nextval('public.chat_thread_chunk_id_seq'::regclass);
|
||
|
||
|
||
--
|
||
-- Name: chat_thread_file id; Type: DEFAULT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.chat_thread_file ALTER COLUMN id SET DEFAULT nextval('public.chat_thread_file_id_seq'::regclass);
|
||
|
||
|
||
--
|
||
-- Name: chat_threads id; Type: DEFAULT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.chat_threads ALTER COLUMN id SET DEFAULT nextval('public.chat_threads_id_seq'::regclass);
|
||
|
||
|
||
--
|
||
-- Name: department id; Type: DEFAULT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.department ALTER COLUMN id SET DEFAULT nextval('public.department_id_seq'::regclass);
|
||
|
||
|
||
--
|
||
-- Name: enterprise id; Type: DEFAULT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.enterprise ALTER COLUMN id SET DEFAULT nextval('public.enterprise_id_seq'::regclass);
|
||
|
||
|
||
--
|
||
-- Name: graphs id; Type: DEFAULT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.graphs ALTER COLUMN id SET DEFAULT nextval('public.graphs_id_seq'::regclass);
|
||
|
||
|
||
--
|
||
-- Name: kb_audit_log id; Type: DEFAULT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.kb_audit_log ALTER COLUMN id SET DEFAULT nextval('public.kb_audit_log_id_seq'::regclass);
|
||
|
||
|
||
--
|
||
-- Name: knowledge_base id; Type: DEFAULT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.knowledge_base ALTER COLUMN id SET DEFAULT nextval('public.knowledge_base_id_seq'::regclass);
|
||
|
||
|
||
--
|
||
-- Name: knowledge_base_chunk id; Type: DEFAULT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.knowledge_base_chunk ALTER COLUMN id SET DEFAULT nextval('public.knowledge_base_chunk_id_seq'::regclass);
|
||
|
||
|
||
--
|
||
-- Name: knowledge_base_file id; Type: DEFAULT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.knowledge_base_file ALTER COLUMN id SET DEFAULT nextval('public.knowledge_base_file_id_seq'::regclass);
|
||
|
||
|
||
--
|
||
-- Name: knowledge_processing_task id; Type: DEFAULT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.knowledge_processing_task ALTER COLUMN id SET DEFAULT nextval('public.knowledge_processing_task_id_seq'::regclass);
|
||
|
||
|
||
--
|
||
-- Name: user_list id; Type: DEFAULT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.user_list ALTER COLUMN id SET DEFAULT nextval('public.user_list_id_seq'::regclass);
|
||
|
||
|
||
--
|
||
-- Name: chat_message_file chat_message_file_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.chat_message_file
|
||
ADD CONSTRAINT chat_message_file_pkey PRIMARY KEY (id);
|
||
|
||
|
||
--
|
||
-- Name: chat_messages chat_messages_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.chat_messages
|
||
ADD CONSTRAINT chat_messages_pkey PRIMARY KEY (id);
|
||
|
||
|
||
--
|
||
-- Name: chat_thread_chunk chat_thread_chunk_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.chat_thread_chunk
|
||
ADD CONSTRAINT chat_thread_chunk_pkey PRIMARY KEY (id);
|
||
|
||
|
||
--
|
||
-- Name: chat_thread_file chat_thread_file_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.chat_thread_file
|
||
ADD CONSTRAINT chat_thread_file_pkey PRIMARY KEY (id);
|
||
|
||
|
||
--
|
||
-- Name: chat_threads chat_threads_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.chat_threads
|
||
ADD CONSTRAINT chat_threads_pkey PRIMARY KEY (id);
|
||
|
||
|
||
--
|
||
-- Name: checkpoint_blobs checkpoint_blobs_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.checkpoint_blobs
|
||
ADD CONSTRAINT checkpoint_blobs_pkey PRIMARY KEY (thread_id, checkpoint_ns, channel, version);
|
||
|
||
|
||
--
|
||
-- Name: checkpoint_migrations checkpoint_migrations_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.checkpoint_migrations
|
||
ADD CONSTRAINT checkpoint_migrations_pkey PRIMARY KEY (v);
|
||
|
||
|
||
--
|
||
-- Name: checkpoint_writes checkpoint_writes_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.checkpoint_writes
|
||
ADD CONSTRAINT checkpoint_writes_pkey PRIMARY KEY (thread_id, checkpoint_ns, checkpoint_id, task_id, idx);
|
||
|
||
|
||
--
|
||
-- Name: checkpoints checkpoints_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.checkpoints
|
||
ADD CONSTRAINT checkpoints_pkey PRIMARY KEY (thread_id, checkpoint_ns, checkpoint_id);
|
||
|
||
|
||
--
|
||
-- Name: department department_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.department
|
||
ADD CONSTRAINT department_pkey PRIMARY KEY (id);
|
||
|
||
|
||
--
|
||
-- Name: enterprise enterprise_code_key; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.enterprise
|
||
ADD CONSTRAINT enterprise_code_key UNIQUE (code);
|
||
|
||
|
||
--
|
||
-- Name: enterprise enterprise_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.enterprise
|
||
ADD CONSTRAINT enterprise_pkey PRIMARY KEY (id);
|
||
|
||
|
||
--
|
||
-- Name: graphs graphs_neo4j_graph_id_key; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.graphs
|
||
ADD CONSTRAINT graphs_neo4j_graph_id_key UNIQUE (neo4j_graph_id);
|
||
|
||
|
||
--
|
||
-- Name: graphs graphs_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.graphs
|
||
ADD CONSTRAINT graphs_pkey PRIMARY KEY (id);
|
||
|
||
|
||
--
|
||
-- Name: kb_audit_log kb_audit_log_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.kb_audit_log
|
||
ADD CONSTRAINT kb_audit_log_pkey PRIMARY KEY (id);
|
||
|
||
|
||
--
|
||
-- Name: knowledge_base_chunk knowledge_base_chunk_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.knowledge_base_chunk
|
||
ADD CONSTRAINT knowledge_base_chunk_pkey PRIMARY KEY (id);
|
||
|
||
|
||
--
|
||
-- Name: knowledge_base_file knowledge_base_file_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.knowledge_base_file
|
||
ADD CONSTRAINT knowledge_base_file_pkey PRIMARY KEY (id);
|
||
|
||
|
||
--
|
||
-- Name: knowledge_base knowledge_base_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.knowledge_base
|
||
ADD CONSTRAINT knowledge_base_pkey PRIMARY KEY (id);
|
||
|
||
|
||
--
|
||
-- Name: knowledge_processing_task knowledge_processing_task_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.knowledge_processing_task
|
||
ADD CONSTRAINT knowledge_processing_task_pkey PRIMARY KEY (id);
|
||
|
||
|
||
--
|
||
-- Name: chat_messages uk_checkpoint_message; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.chat_messages
|
||
ADD CONSTRAINT uk_checkpoint_message UNIQUE (checkpoint_id, message_index);
|
||
|
||
|
||
--
|
||
-- Name: chat_message_file uk_message_file; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.chat_message_file
|
||
ADD CONSTRAINT uk_message_file UNIQUE (checkpoint_id, message_index, file_id);
|
||
|
||
|
||
--
|
||
-- Name: chat_threads uk_thread_id; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.chat_threads
|
||
ADD CONSTRAINT uk_thread_id UNIQUE (thread_id);
|
||
|
||
|
||
--
|
||
-- Name: user_list unique_email; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.user_list
|
||
ADD CONSTRAINT unique_email UNIQUE (email);
|
||
|
||
|
||
--
|
||
-- Name: user_list unique_github_id; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.user_list
|
||
ADD CONSTRAINT unique_github_id UNIQUE (github_id);
|
||
|
||
|
||
--
|
||
-- Name: department uq_department_enterprise_name; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.department
|
||
ADD CONSTRAINT uq_department_enterprise_name UNIQUE (enterprise_id, name);
|
||
|
||
|
||
--
|
||
-- Name: user_list user_list_phone_key; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.user_list
|
||
ADD CONSTRAINT user_list_phone_key UNIQUE (phone);
|
||
|
||
|
||
--
|
||
-- Name: user_list user_list_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.user_list
|
||
ADD CONSTRAINT user_list_pkey PRIMARY KEY (id);
|
||
|
||
|
||
--
|
||
-- Name: user_list user_list_username_key; Type: CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.user_list
|
||
ADD CONSTRAINT user_list_username_key UNIQUE (username);
|
||
|
||
|
||
--
|
||
-- Name: checkpoint_blobs_thread_id_idx; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX checkpoint_blobs_thread_id_idx ON public.checkpoint_blobs USING btree (thread_id);
|
||
|
||
|
||
--
|
||
-- Name: checkpoint_writes_thread_id_idx; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX checkpoint_writes_thread_id_idx ON public.checkpoint_writes USING btree (thread_id);
|
||
|
||
|
||
--
|
||
-- Name: checkpoints_thread_id_idx; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX checkpoints_thread_id_idx ON public.checkpoints USING btree (thread_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_message_file_checkpoint; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_message_file_checkpoint ON public.chat_message_file USING btree (checkpoint_id, message_index);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_message_file_file_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_message_file_file_id ON public.chat_message_file USING btree (file_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_message_file_thread_checkpoint; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_message_file_thread_checkpoint ON public.chat_message_file USING btree (thread_id, checkpoint_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_message_file_thread_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_message_file_thread_id ON public.chat_message_file USING btree (thread_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_messages_checkpoint_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_messages_checkpoint_id ON public.chat_messages USING btree (checkpoint_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_messages_content_search; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_messages_content_search ON public.chat_messages USING gin (to_tsvector('simple'::regconfig, content));
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_messages_has_files; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_messages_has_files ON public.chat_messages USING btree (has_files);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_messages_metadata; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_messages_metadata ON public.chat_messages USING gin (metadata);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_messages_role; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_messages_role ON public.chat_messages USING btree (role);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_messages_thread_created; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_messages_thread_created ON public.chat_messages USING btree (thread_id, created_at DESC);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_messages_thread_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_messages_thread_id ON public.chat_messages USING btree (thread_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_thread_chunk_created_at; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_thread_chunk_created_at ON public.chat_thread_chunk USING btree (created_at);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_thread_chunk_file_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_thread_chunk_file_id ON public.chat_thread_chunk USING btree (file_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_thread_chunk_file_thread; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_thread_chunk_file_thread ON public.chat_thread_chunk USING btree (file_id, thread_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_thread_chunk_thread_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_thread_chunk_thread_id ON public.chat_thread_chunk USING btree (thread_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_thread_chunk_vector_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_thread_chunk_vector_id ON public.chat_thread_chunk USING btree (vector_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_thread_file_created_at; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_thread_file_created_at ON public.chat_thread_file USING btree (created_at);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_thread_file_is_deleted; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_thread_file_is_deleted ON public.chat_thread_file USING btree (is_deleted);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_thread_file_status; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_thread_file_status ON public.chat_thread_file USING btree (status);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_thread_file_thread_deleted; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_thread_file_thread_deleted ON public.chat_thread_file USING btree (thread_id, is_deleted);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_thread_file_thread_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_thread_file_thread_id ON public.chat_thread_file USING btree (thread_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_thread_file_thread_user; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_thread_file_thread_user ON public.chat_thread_file USING btree (thread_id, user_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_thread_file_user_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_thread_file_user_id ON public.chat_thread_file USING btree (user_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_threads_created_at; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_threads_created_at ON public.chat_threads USING btree (created_at DESC);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_threads_knowledge_graph_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_threads_knowledge_graph_id ON public.chat_threads USING btree (knowledge_graph_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_threads_novel_graph_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_threads_novel_graph_id ON public.chat_threads USING btree (novel_graph_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_threads_user_created; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_threads_user_created ON public.chat_threads USING btree (user_id, created_at DESC);
|
||
|
||
|
||
--
|
||
-- Name: idx_chat_threads_user_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_chat_threads_user_id ON public.chat_threads USING btree (user_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_department_enterprise_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_department_enterprise_id ON public.department USING btree (enterprise_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_department_leader_user_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_department_leader_user_id ON public.department USING btree (leader_user_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_graphs_created_at; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_graphs_created_at ON public.graphs USING btree (created_at DESC);
|
||
|
||
|
||
--
|
||
-- Name: idx_graphs_creator; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_graphs_creator ON public.graphs USING btree (creator_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_graphs_ent_vis; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_graphs_ent_vis ON public.graphs USING btree (enterprise_id, visibility);
|
||
|
||
|
||
--
|
||
-- Name: idx_graphs_enterprise; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_graphs_enterprise ON public.graphs USING btree (enterprise_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_graphs_graph_type; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_graphs_graph_type ON public.graphs USING btree (user_id, graph_type);
|
||
|
||
|
||
--
|
||
-- Name: idx_graphs_neo4j_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_graphs_neo4j_id ON public.graphs USING btree (neo4j_graph_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_graphs_user_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_graphs_user_id ON public.graphs USING btree (user_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_kb_audit_log_action; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_kb_audit_log_action ON public.kb_audit_log USING btree (action);
|
||
|
||
|
||
--
|
||
-- Name: idx_kb_audit_log_actor_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_kb_audit_log_actor_id ON public.kb_audit_log USING btree (actor_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_kb_audit_log_created_at; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_kb_audit_log_created_at ON public.kb_audit_log USING btree (created_at DESC);
|
||
|
||
|
||
--
|
||
-- Name: idx_kb_audit_log_department_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_kb_audit_log_department_id ON public.kb_audit_log USING btree (department_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_kb_audit_log_ent_dept_created; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_kb_audit_log_ent_dept_created ON public.kb_audit_log USING btree (enterprise_id, department_id, created_at DESC);
|
||
|
||
|
||
--
|
||
-- Name: idx_kb_audit_log_enterprise_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_kb_audit_log_enterprise_id ON public.kb_audit_log USING btree (enterprise_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_kb_audit_log_kb_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_kb_audit_log_kb_id ON public.kb_audit_log USING btree (kb_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_kb_audit_log_target_user_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_kb_audit_log_target_user_id ON public.kb_audit_log USING btree (target_user_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_kb_chunk_file_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_kb_chunk_file_id ON public.knowledge_base_chunk USING btree (file_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_kb_chunk_kb_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_kb_chunk_kb_id ON public.knowledge_base_chunk USING btree (knowledge_base_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_kb_chunk_metadata; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_kb_chunk_metadata ON public.knowledge_base_chunk USING gin (metadata);
|
||
|
||
|
||
--
|
||
-- Name: idx_kb_chunk_vector_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_kb_chunk_vector_id ON public.knowledge_base_chunk USING btree (vector_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_kb_file_created_at; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_kb_file_created_at ON public.knowledge_base_file USING btree (created_at);
|
||
|
||
|
||
--
|
||
-- Name: idx_kb_file_kb_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_kb_file_kb_id ON public.knowledge_base_file USING btree (knowledge_base_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_kb_file_status; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_kb_file_status ON public.knowledge_base_file USING btree (status);
|
||
|
||
|
||
--
|
||
-- Name: idx_kb_file_unique_active; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE UNIQUE INDEX idx_kb_file_unique_active ON public.knowledge_base_file USING btree (knowledge_base_id, file_name) WHERE (is_deleted = false);
|
||
|
||
|
||
--
|
||
-- Name: idx_kb_file_user_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_kb_file_user_id ON public.knowledge_base_file USING btree (user_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_kb_processing_created_at; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_kb_processing_created_at ON public.knowledge_processing_task USING btree (created_at DESC);
|
||
|
||
|
||
--
|
||
-- Name: idx_kb_processing_kb_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_kb_processing_kb_id ON public.knowledge_processing_task USING btree (knowledge_base_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_kb_processing_status; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_kb_processing_status ON public.knowledge_processing_task USING btree (status);
|
||
|
||
|
||
--
|
||
-- Name: idx_kb_processing_user_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_kb_processing_user_id ON public.knowledge_processing_task USING btree (user_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_kb_processing_user_status; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_kb_processing_user_status ON public.knowledge_processing_task USING btree (user_id, status);
|
||
|
||
|
||
--
|
||
-- Name: idx_knowledge_base_created_at; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_knowledge_base_created_at ON public.knowledge_base USING btree (created_at);
|
||
|
||
|
||
--
|
||
-- Name: idx_knowledge_base_creator; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_knowledge_base_creator ON public.knowledge_base USING btree (creator_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_knowledge_base_ent_vis; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_knowledge_base_ent_vis ON public.knowledge_base USING btree (enterprise_id, visibility) WHERE (is_deleted = false);
|
||
|
||
|
||
--
|
||
-- Name: idx_knowledge_base_enterprise; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_knowledge_base_enterprise ON public.knowledge_base USING btree (enterprise_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_knowledge_base_is_deleted; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_knowledge_base_is_deleted ON public.knowledge_base USING btree (is_deleted);
|
||
|
||
|
||
--
|
||
-- Name: idx_knowledge_base_user_deleted; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_knowledge_base_user_deleted ON public.knowledge_base USING btree (user_id, is_deleted);
|
||
|
||
|
||
--
|
||
-- Name: idx_knowledge_base_user_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_knowledge_base_user_id ON public.knowledge_base USING btree (user_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_knowledge_base_user_name; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_knowledge_base_user_name ON public.knowledge_base USING btree (user_id, name);
|
||
|
||
|
||
--
|
||
-- Name: idx_user_list_created_at; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_user_list_created_at ON public.user_list USING btree (created_at);
|
||
|
||
|
||
--
|
||
-- Name: idx_user_list_department_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_user_list_department_id ON public.user_list USING btree (department_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_user_list_email; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_user_list_email ON public.user_list USING btree (email);
|
||
|
||
|
||
--
|
||
-- Name: idx_user_list_enterprise_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_user_list_enterprise_id ON public.user_list USING btree (enterprise_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_user_list_github_id; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_user_list_github_id ON public.user_list USING btree (github_id);
|
||
|
||
|
||
--
|
||
-- Name: idx_user_list_role; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_user_list_role ON public.user_list USING btree (role);
|
||
|
||
|
||
--
|
||
-- Name: idx_user_list_username; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE INDEX idx_user_list_username ON public.user_list USING btree (username);
|
||
|
||
|
||
--
|
||
-- Name: uk_chat_thread_file_thread_name_active; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE UNIQUE INDEX uk_chat_thread_file_thread_name_active ON public.chat_thread_file USING btree (thread_id, file_name) WHERE (is_deleted = false);
|
||
|
||
|
||
--
|
||
-- Name: uk_user_knowledge_base_name_active; Type: INDEX; Schema: public; Owner: -
|
||
--
|
||
|
||
CREATE UNIQUE INDEX uk_user_knowledge_base_name_active ON public.knowledge_base USING btree (user_id, name) WHERE (is_deleted = false);
|
||
|
||
|
||
--
|
||
-- Name: department department_enterprise_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.department
|
||
ADD CONSTRAINT department_enterprise_id_fkey FOREIGN KEY (enterprise_id) REFERENCES public.enterprise(id) ON DELETE CASCADE;
|
||
|
||
|
||
--
|
||
-- Name: department department_leader_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.department
|
||
ADD CONSTRAINT department_leader_user_id_fkey FOREIGN KEY (leader_user_id) REFERENCES public.user_list(id) ON DELETE SET NULL;
|
||
|
||
|
||
--
|
||
-- Name: department department_parent_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.department
|
||
ADD CONSTRAINT department_parent_id_fkey FOREIGN KEY (parent_id) REFERENCES public.department(id) ON DELETE SET NULL;
|
||
|
||
|
||
--
|
||
-- Name: chat_message_file fk_chat_message_file_file; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.chat_message_file
|
||
ADD CONSTRAINT fk_chat_message_file_file FOREIGN KEY (file_id) REFERENCES public.chat_thread_file(id) ON DELETE CASCADE;
|
||
|
||
|
||
--
|
||
-- Name: chat_thread_chunk fk_chat_thread_chunk_file; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.chat_thread_chunk
|
||
ADD CONSTRAINT fk_chat_thread_chunk_file FOREIGN KEY (file_id) REFERENCES public.chat_thread_file(id) ON DELETE CASCADE;
|
||
|
||
|
||
--
|
||
-- Name: chat_thread_file fk_chat_thread_file_user; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.chat_thread_file
|
||
ADD CONSTRAINT fk_chat_thread_file_user FOREIGN KEY (user_id) REFERENCES public.user_list(id) ON DELETE CASCADE;
|
||
|
||
|
||
--
|
||
-- Name: chat_threads fk_chat_threads_knowledge_graph; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.chat_threads
|
||
ADD CONSTRAINT fk_chat_threads_knowledge_graph FOREIGN KEY (knowledge_graph_id) REFERENCES public.graphs(id) ON DELETE SET NULL;
|
||
|
||
|
||
--
|
||
-- Name: graphs fk_graphs_user; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.graphs
|
||
ADD CONSTRAINT fk_graphs_user FOREIGN KEY (user_id) REFERENCES public.user_list(id) ON DELETE CASCADE;
|
||
|
||
|
||
--
|
||
-- Name: knowledge_base_chunk fk_kb; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.knowledge_base_chunk
|
||
ADD CONSTRAINT fk_kb FOREIGN KEY (knowledge_base_id) REFERENCES public.knowledge_base(id) ON DELETE CASCADE;
|
||
|
||
|
||
--
|
||
-- Name: knowledge_base_chunk fk_kb_file; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.knowledge_base_chunk
|
||
ADD CONSTRAINT fk_kb_file FOREIGN KEY (file_id) REFERENCES public.knowledge_base_file(id) ON DELETE CASCADE;
|
||
|
||
|
||
--
|
||
-- Name: knowledge_processing_task fk_kb_processing_kb; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.knowledge_processing_task
|
||
ADD CONSTRAINT fk_kb_processing_kb FOREIGN KEY (knowledge_base_id) REFERENCES public.knowledge_base(id) ON DELETE CASCADE;
|
||
|
||
|
||
--
|
||
-- Name: knowledge_processing_task fk_kb_processing_user; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.knowledge_processing_task
|
||
ADD CONSTRAINT fk_kb_processing_user FOREIGN KEY (user_id) REFERENCES public.user_list(id) ON DELETE CASCADE;
|
||
|
||
|
||
--
|
||
-- Name: knowledge_base_file fk_knowledge_base; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.knowledge_base_file
|
||
ADD CONSTRAINT fk_knowledge_base FOREIGN KEY (knowledge_base_id) REFERENCES public.knowledge_base(id) ON DELETE CASCADE;
|
||
|
||
|
||
--
|
||
-- Name: chat_threads fk_user_id; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.chat_threads
|
||
ADD CONSTRAINT fk_user_id FOREIGN KEY (user_id) REFERENCES public.user_list(id) ON DELETE CASCADE;
|
||
|
||
|
||
--
|
||
-- Name: graphs graphs_creator_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.graphs
|
||
ADD CONSTRAINT graphs_creator_id_fkey FOREIGN KEY (creator_id) REFERENCES public.user_list(id) ON DELETE SET NULL;
|
||
|
||
|
||
--
|
||
-- Name: graphs graphs_department_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.graphs
|
||
ADD CONSTRAINT graphs_department_id_fkey FOREIGN KEY (department_id) REFERENCES public.department(id) ON DELETE SET NULL;
|
||
|
||
|
||
--
|
||
-- Name: graphs graphs_enterprise_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.graphs
|
||
ADD CONSTRAINT graphs_enterprise_id_fkey FOREIGN KEY (enterprise_id) REFERENCES public.enterprise(id);
|
||
|
||
|
||
--
|
||
-- Name: kb_audit_log kb_audit_log_actor_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.kb_audit_log
|
||
ADD CONSTRAINT kb_audit_log_actor_id_fkey FOREIGN KEY (actor_id) REFERENCES public.user_list(id) ON DELETE CASCADE;
|
||
|
||
|
||
--
|
||
-- Name: kb_audit_log kb_audit_log_department_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.kb_audit_log
|
||
ADD CONSTRAINT kb_audit_log_department_id_fkey FOREIGN KEY (department_id) REFERENCES public.department(id) ON DELETE SET NULL;
|
||
|
||
|
||
--
|
||
-- Name: kb_audit_log kb_audit_log_enterprise_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.kb_audit_log
|
||
ADD CONSTRAINT kb_audit_log_enterprise_id_fkey FOREIGN KEY (enterprise_id) REFERENCES public.enterprise(id) ON DELETE CASCADE;
|
||
|
||
|
||
--
|
||
-- Name: kb_audit_log kb_audit_log_file_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.kb_audit_log
|
||
ADD CONSTRAINT kb_audit_log_file_id_fkey FOREIGN KEY (file_id) REFERENCES public.knowledge_base_file(id) ON DELETE SET NULL;
|
||
|
||
|
||
--
|
||
-- Name: kb_audit_log kb_audit_log_kb_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.kb_audit_log
|
||
ADD CONSTRAINT kb_audit_log_kb_id_fkey FOREIGN KEY (kb_id) REFERENCES public.knowledge_base(id) ON DELETE SET NULL;
|
||
|
||
|
||
--
|
||
-- Name: kb_audit_log kb_audit_log_target_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.kb_audit_log
|
||
ADD CONSTRAINT kb_audit_log_target_user_id_fkey FOREIGN KEY (target_user_id) REFERENCES public.user_list(id) ON DELETE SET NULL;
|
||
|
||
|
||
--
|
||
-- Name: knowledge_base knowledge_base_creator_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.knowledge_base
|
||
ADD CONSTRAINT knowledge_base_creator_id_fkey FOREIGN KEY (creator_id) REFERENCES public.user_list(id) ON DELETE CASCADE;
|
||
|
||
|
||
--
|
||
-- Name: knowledge_base knowledge_base_department_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.knowledge_base
|
||
ADD CONSTRAINT knowledge_base_department_id_fkey FOREIGN KEY (department_id) REFERENCES public.department(id) ON DELETE SET NULL;
|
||
|
||
|
||
--
|
||
-- Name: knowledge_base knowledge_base_enterprise_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.knowledge_base
|
||
ADD CONSTRAINT knowledge_base_enterprise_id_fkey FOREIGN KEY (enterprise_id) REFERENCES public.enterprise(id);
|
||
|
||
|
||
--
|
||
-- Name: user_list user_list_department_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.user_list
|
||
ADD CONSTRAINT user_list_department_id_fkey FOREIGN KEY (department_id) REFERENCES public.department(id) ON DELETE SET NULL;
|
||
|
||
|
||
--
|
||
-- Name: user_list user_list_enterprise_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||
--
|
||
|
||
ALTER TABLE ONLY public.user_list
|
||
ADD CONSTRAINT user_list_enterprise_id_fkey FOREIGN KEY (enterprise_id) REFERENCES public.enterprise(id);
|
||
|
||
|
||
--
|
||
-- PostgreSQL database dump complete
|
||
--
|
||
|
||
\unrestrict IIs1ywVfui7Zb3f5SRgOBwj2LGJXpFF5jpVnQbpR7cCgjNpjBLehhEAmULW9yma
|
||
|