Coze开源了coze-studio
Coze开源了,Dify、Fastgpt等平台要哭了,
没错,(′°︿°)
本地想部署的,直接去这里
coze-studio github地址
身为一名程序员,可以做什么,先见一些骨头啃啃吧
没错,这是 coze-studio的数据库设计
什么工作流、什么插件、什么知识库,如何设计的
看到这个数据库,可以管中窥豹了
DROP TABLE IF EXISTS agent_to_database;
CREATE TABLE agent_to_database(
`id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'ID' ,
`agent_id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'Agent;ID' ,
`database_id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'ID;of database_info' ,
`is_draft` BIT(1) NOT NULL COMMENT 'Is;draft' ,
`prompt_disable` BIT(1) NOT NULL DEFAULT 0 COMMENT 'Support;prompt calls: 1 not supported, 0 supported' ,
PRIMARY KEY (id)
) COMMENT = 'agent_to_database;info';
CREATE UNIQUE INDEX uniq_agent_db_draft ON agent_to_database(agent_id,database_id,is_draft);
DROP TABLE IF EXISTS agent_tool_draft;
CREATE TABLE agent_tool_draft(
`id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Primary;Key ID' ,
`agent_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Agent;ID' ,
`plugin_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Plugin;ID' ,
`tool_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Tool;ID' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Create;Time in Milliseconds' ,
`sub_url` VARCHAR(512) NOT NULL COMMENT 'Sub;URL Path' ,
`method` VARCHAR(64) NOT NULL COMMENT 'HTTP;Request Method' ,
`tool_name` VARCHAR(255) NOT NULL COMMENT 'Tool;Name' ,
`tool_version` VARCHAR(255) NOT NULL COMMENT 'Tool;Version, e.g. v1.0.0' ,
`operation` JSON COMMENT 'Tool;Openapi Operation Schema' ,
PRIMARY KEY (id)
) COMMENT = 'Draft;Agent Tool';
CREATE UNIQUE INDEX uniq_idx_agent_tool_id ON agent_tool_draft(agent_id,tool_id);
CREATE UNIQUE INDEX uniq_idx_agent_tool_name ON agent_tool_draft(agent_id,tool_name);
CREATE INDEX idx_agent_plugin_tool ON agent_tool_draft(agent_id,plugin_id,tool_id);
CREATE INDEX idx_agent_tool_bind ON agent_tool_draft(agent_id,created_at);
DROP TABLE IF EXISTS agent_tool_version;
CREATE TABLE agent_tool_version(
`id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Primary;Key ID' ,
`agent_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Agent;ID' ,
`plugin_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Plugin;ID' ,
`tool_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Tool;ID' ,
`agent_version` VARCHAR(255) NOT NULL COMMENT 'Agent;Tool Version' ,
`tool_name` VARCHAR(255) NOT NULL COMMENT 'Tool;Name' ,
`tool_version` VARCHAR(255) NOT NULL COMMENT 'Tool;Version, e.g. v1.0.0' ,
`sub_url` VARCHAR(512) NOT NULL COMMENT 'Sub;URL Path' ,
`method` VARCHAR(64) NOT NULL COMMENT 'HTTP;Request Method' ,
`operation` JSON COMMENT 'Tool;Openapi Operation Schema' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Create;Time in Milliseconds' ,
PRIMARY KEY (id)
) COMMENT = 'Agent;Tool Version';
CREATE UNIQUE INDEX uniq_idx_agent_tool_id_agent_version ON agent_tool_version(agent_id,tool_id,agent_version);
CREATE UNIQUE INDEX uniq_idx_agent_tool_name_agent_version ON agent_tool_version(agent_id,tool_name,agent_version);
CREATE INDEX idx_agent_tool_id_created_at ON agent_tool_version(agent_id,tool_id,created_at);
CREATE INDEX idx_agent_tool_name_created_at ON agent_tool_version(agent_id,tool_name,created_at);
DROP TABLE IF EXISTS api_key;
CREATE TABLE api_key(
`id` BIGINT UNSIGNED(21) NOT NULL AUTO_INCREMENT COMMENT 'Primary;Key ID' ,
`api_key` VARCHAR(255) NOT NULL COMMENT 'API;Key hash' ,
`name` VARCHAR(255) NOT NULL COMMENT 'API;Key Name' ,
`status` TINYINT(4) NOT NULL DEFAULT 0 COMMENT '0;normal, 1 deleted' ,
`user_id` BIGINT(20) NOT NULL DEFAULT 0 COMMENT 'API;Key Owner' ,
`expired_at` BIGINT(20) NOT NULL DEFAULT 0 COMMENT 'API;Key Expired Time' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Create;Time in Milliseconds' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Update;Time in Milliseconds' ,
`last_used_at` BIGINT(20) NOT NULL DEFAULT 0 COMMENT 'Used;Time in Milliseconds' ,
PRIMARY KEY (id)
) COMMENT = 'api;key table';
DROP TABLE IF EXISTS app_connector_release_ref;
CREATE TABLE app_connector_release_ref(
`id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Primary;Key' ,
`record_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Publish;Record ID' ,
`connector_id` BIGINT UNSIGNED(21) COMMENT 'Publish;Connector ID' ,
`publish_config` JSON COMMENT 'Publish;Configuration' ,
`publish_status` TINYINT(4) NOT NULL DEFAULT 0 COMMENT 'Publish;Status' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Create;Time in Milliseconds' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Update;Time in Milliseconds' ,
PRIMARY KEY (id)
) COMMENT = 'Connector;Release Record Reference';
CREATE UNIQUE INDEX uniq_record_connector ON app_connector_release_ref(record_id,connector_id);
DROP TABLE IF EXISTS app_draft;
CREATE TABLE app_draft(
`id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'APP;ID' ,
`space_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Space;ID' ,
`owner_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Owner;ID' ,
`icon_uri` VARCHAR(512) NOT NULL COMMENT 'Icon;URI' ,
`name` VARCHAR(255) NOT NULL COMMENT 'Application;Name' ,
`description` TEXT COMMENT 'Application;Description' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Create;Time in Milliseconds' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Update;Time in Milliseconds' ,
`deleted_at` DATETIME COMMENT 'Delete;Time' ,
PRIMARY KEY (id)
) COMMENT = 'Draft;Application';
DROP TABLE IF EXISTS app_release_record;
CREATE TABLE app_release_record(
`id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Publish;Record ID' ,
`app_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Application;ID' ,
`space_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Space;ID' ,
`owner_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Owner;ID' ,
`icon_uri` VARCHAR(512) NOT NULL COMMENT 'Icon;URI' ,
`name` VARCHAR(255) NOT NULL COMMENT 'Application;Name' ,
`description` TEXT COMMENT 'Application;Description' ,
`connector_ids` JSON COMMENT 'Publish;Connector IDs' ,
`extra_info` JSON COMMENT 'Publish;Extra Info' ,
`version` VARCHAR(255) NOT NULL COMMENT 'Release;Version' ,
`version_desc` TEXT COMMENT 'Version;Description' ,
`publish_status` TINYINT(4) NOT NULL DEFAULT 0 COMMENT 'Publish;Status' ,
`publish_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Publish;Time in Milliseconds' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Create;Time in Milliseconds' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Update;Time in Milliseconds' ,
PRIMARY KEY (id)
) COMMENT = 'Application;Release Record';
CREATE UNIQUE INDEX uniq_idx_app_version_connector ON app_release_record(app_id,version);
CREATE INDEX idx_app_publish_at ON app_release_record(app_id,publish_at);
DROP TABLE IF EXISTS connector_workflow_version;
CREATE TABLE connector_workflow_version(
`id` BIGINT UNSIGNED(21) NOT NULL AUTO_INCREMENT COMMENT 'id' ,
`app_id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'app;id' ,
`connector_id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'connector;id' ,
`workflow_id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'workflow;id' ,
`version` VARCHAR(256) NOT NULL COMMENT 'version' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL COMMENT 'create;time in millisecond' ,
PRIMARY KEY (id)
) COMMENT = '';
CREATE UNIQUE INDEX idx_connector_id_workflow_id_version ON connector_workflow_version(connector_id,workflow_id,version);
CREATE INDEX idx_connector_id_workflow_id_create_at ON connector_workflow_version(connector_id,workflow_id,created_at);
DROP TABLE IF EXISTS conversation;
CREATE TABLE conversation(
`id` BIGINT UNSIGNED(21) NOT NULL AUTO_INCREMENT COMMENT '主键ID' ,
`connector_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '业务线;ID' ,
`agent_id` BIGINT(20) NOT NULL DEFAULT 0 COMMENT 'agent_id' ,
`scene` TINYINT(4) NOT NULL DEFAULT 0 COMMENT '会话场景' ,
`section_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '最新section_id' ,
`creator_id` BIGINT UNSIGNED(21) DEFAULT 0 COMMENT '创建者id' ,
`ext` TEXT COMMENT '扩展字段' ,
`status` TINYINT(4) NOT NULL DEFAULT 1 COMMENT 'status:;1-normal 2-deleted' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '创建时间' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '更新时间' ,
PRIMARY KEY (id)
) COMMENT = '会话信息表';
CREATE INDEX idx_connector_bot_status ON conversation(connector_id,agent_id,creator_id);
DROP TABLE IF EXISTS data_copy_task;
CREATE TABLE data_copy_task(
`master_task_id` VARCHAR(128) NOT NULL COMMENT '复制任务ID' ,
`origin_data_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '源id' ,
`target_data_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '目标id' ,
`origin_space_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '源团队空间' ,
`target_space_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '目标团队空间' ,
`origin_user_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '源用户ID' ,
`target_user_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '目标用户ID' ,
`origin_app_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '源AppID' ,
`target_app_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '目标AppID' ,
`data_type` TINYINT UNSIGNED(4) NOT NULL DEFAULT 0 COMMENT '数据类型;1:knowledge, 2:database' ,
`ext_info` VARCHAR(255) NOT NULL COMMENT '存储额外信息' ,
`start_time` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '任务开始时间' ,
`finish_time` BIGINT(20) COMMENT '任务结束时间' ,
`status` TINYINT(4) NOT NULL DEFAULT 1 COMMENT '1:创建;2:执行中 3:成功 4:失败' ,
`error_msg` VARCHAR(128) COMMENT '错误信息' ,
`id` BIGINT UNSIGNED(21) NOT NULL AUTO_INCREMENT COMMENT 'ID' ,
PRIMARY KEY (id)
) COMMENT = 'data方向复制任务记录表';
CREATE UNIQUE INDEX uniq_master_task_id_origin_data_id_data_type ON data_copy_task(master_task_id,origin_data_id,data_type);
DROP TABLE IF EXISTS draft_database_info;
CREATE TABLE draft_database_info(
`id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'ID' ,
`app_id` BIGINT UNSIGNED(21) COMMENT 'App;ID' ,
`space_id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'Space;ID' ,
`related_online_id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'The;primary key ID of online_database_info table' ,
`is_visible` TINYINT(4) NOT NULL DEFAULT 1 COMMENT 'Visibility:;0 invisible, 1 visible' ,
`prompt_disabled` TINYINT(4) NOT NULL DEFAULT 0 COMMENT 'Support;prompt calls: 1 not supported, 0 supported' ,
`table_name` VARCHAR(255) NOT NULL COMMENT 'Table;name' ,
`table_desc` VARCHAR(256) COMMENT 'Table;description' ,
`table_field` TEXT COMMENT 'Table;field info' ,
`creator_id` BIGINT(20) NOT NULL DEFAULT 0 COMMENT 'Creator;ID' ,
`icon_uri` VARCHAR(255) NOT NULL COMMENT 'Icon;Uri' ,
`physical_table_name` VARCHAR(255) COMMENT 'The;name of the real physical table' ,
`rw_mode` BIGINT(20) NOT NULL DEFAULT 1 COMMENT 'Read;and write permission modes: 1. Limited read and write mode 2. Read-only mode 3. Full read and write mode' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Create;Time in Milliseconds' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Update;Time in Milliseconds' ,
`deleted_at` DATETIME COMMENT 'Delete;Time' ,
PRIMARY KEY (id)
) COMMENT = 'draft;database info';
CREATE INDEX idx_space_app_creator_deleted ON draft_database_info(space_id,app_id,creator_id,deleted_at);
DROP TABLE IF EXISTS knowledge;
CREATE TABLE knowledge(
`id` BIGINT UNSIGNED(21) NOT NULL COMMENT '主键ID' ,
`name` VARCHAR(150) NOT NULL COMMENT '名称' ,
`app_id` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '项目ID;标识该资源是否是项目独有' ,
`creator_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'ID' ,
`space_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '空间ID' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Create;Time in Milliseconds' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Update;Time in Milliseconds' ,
`deleted_at` DATETIME COMMENT 'Delete;Time in Milliseconds' ,
`status` TINYINT(4) NOT NULL DEFAULT 1 COMMENT '0;初始化, 1 生效 2 失效' ,
`description` TEXT COMMENT '描述' ,
`icon_uri` VARCHAR(150) COMMENT '头像uri' ,
`format_type` TINYINT(4) NOT NULL DEFAULT 0 COMMENT '0:文本;1:表格 2:图片' ,
PRIMARY KEY (id)
) COMMENT = '知识库表';
CREATE INDEX idx_app_id ON knowledge(app_id);
CREATE INDEX idx_creator_id ON knowledge(creator_id);
CREATE INDEX idx_space_id_deleted_at_updated_at ON knowledge(space_id,deleted_at,updated_at);
DROP TABLE IF EXISTS knowledge_document;
CREATE TABLE knowledge_document(
`id` BIGINT UNSIGNED(21) NOT NULL COMMENT '主键ID' ,
`knowledge_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '所属knowledge的ID' ,
`name` VARCHAR(150) NOT NULL COMMENT '文档名称' ,
`file_extension` VARCHAR(20) NOT NULL DEFAULT '0' COMMENT '文档类型,;txt/pdf/csv/...' ,
`document_type` INT(11) NOT NULL DEFAULT 0 COMMENT '文档类型:;0:文本 1:表格 2:图片' ,
`uri` TEXT COMMENT '资源uri' ,
`size` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '文档大小' ,
`slice_count` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '分片数量' ,
`char_count` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '字符数' ,
`creator_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '创建者ID' ,
`space_id` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '空间id' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Create;Time in Milliseconds' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Update;Time in Milliseconds' ,
`deleted_at` DATETIME COMMENT 'Delete;Time in Milliseconds' ,
`source_type` INT(11) NOT NULL DEFAULT 0 COMMENT '0:本地文件上传,;2:自定义文本' ,
`status` INT(11) NOT NULL DEFAULT 0 COMMENT '状态' ,
`fail_reason` TEXT COMMENT '失败原因' ,
`parse_rule` JSON COMMENT '解析+切片规则' ,
`table_info` JSON COMMENT '表格信息' ,
PRIMARY KEY (id)
) COMMENT = '知识库文档表';
CREATE INDEX idx_creator_id ON knowledge_document(creator_id);
CREATE INDEX idx_knowledge_id_deleted_at_updated_at ON knowledge_document(knowledge_id,deleted_at,updated_at);
DROP TABLE IF EXISTS knowledge_document_review;
CREATE TABLE knowledge_document_review(
`id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '主键ID' ,
`knowledge_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'knowledge;id' ,
`space_id` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '空间id' ,
`name` VARCHAR(150) NOT NULL COMMENT '文档名称' ,
`type` VARCHAR(10) NOT NULL DEFAULT '0' COMMENT '文档类型' ,
`uri` TEXT COMMENT '资源标识' ,
`format_type` TINYINT UNSIGNED(4) NOT NULL DEFAULT 0 COMMENT '0;文本, 1 表格, 2 图片' ,
`status` TINYINT UNSIGNED(4) NOT NULL DEFAULT 0 COMMENT '0;处理中,1 已完成,2 失败,3 失效' ,
`chunk_resp_uri` TEXT COMMENT '预切片tos资源标识' ,
`deleted_at` DATETIME COMMENT 'Delete;Time in Milliseconds' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Create;Time in Milliseconds' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Update;Time in Milliseconds' ,
`creator_id` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '创建者ID' ,
PRIMARY KEY (id)
) COMMENT = '文档审阅表';
CREATE INDEX idx_dataset_id ON knowledge_document_review(knowledge_id,status,updated_at);
CREATE INDEX idx_uri ON knowledge_document_review(uri);
DROP TABLE IF EXISTS knowledge_document_slice;
CREATE TABLE knowledge_document_slice(
`id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '主键ID' ,
`knowledge_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'knowledge;id' ,
`document_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'document;id' ,
`content` TEXT COMMENT '切片内容' ,
`sequence` DECIMAL(20,5) NOT NULL COMMENT '切片顺序号,;从1开始' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Create;Time in Milliseconds' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Update;Time in Milliseconds' ,
`deleted_at` DATETIME COMMENT 'Delete;Time in Milliseconds' ,
`creator_id` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '创建者ID' ,
`space_id` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '空间ID' ,
`status` INT(11) NOT NULL DEFAULT 0 COMMENT '状态' ,
`fail_reason` TEXT COMMENT '失败原因' ,
`hit` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '命中次数' ,
PRIMARY KEY (id)
) COMMENT = '知识库文件切片表';
CREATE INDEX idx_document_id_deleted_at_sequence ON knowledge_document_slice(document_id,deleted_at,sequence);
CREATE INDEX idx_knowledge_id_document_id ON knowledge_document_slice(knowledge_id,document_id);
CREATE INDEX idx_sequence ON knowledge_document_slice(sequence);
DROP TABLE IF EXISTS message;
CREATE TABLE message(
`id` BIGINT UNSIGNED(21) NOT NULL AUTO_INCREMENT COMMENT '主键ID' ,
`run_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '对应的run_id' ,
`conversation_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'conversation;id' ,
`user_id` VARCHAR(60) NOT NULL COMMENT 'user;id' ,
`agent_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'agent_id' ,
`role` VARCHAR(100) NOT NULL COMMENT '角色:;user、assistant、system' ,
`content_type` VARCHAR(100) NOT NULL COMMENT '内容类型;1 text' ,
`content` MEDIUMTEXT COMMENT '内容' ,
`message_type` VARCHAR(100) NOT NULL COMMENT '消息类型:' ,
`display_content` TEXT COMMENT '展示内容' ,
`ext` TEXT COMMENT 'message;扩展字段' ,
`section_id` BIGINT UNSIGNED(21) COMMENT '段落id' ,
`broken_position` INT(11) DEFAULT -1 COMMENT '打断位置' ,
`status` TINYINT UNSIGNED(4) NOT NULL DEFAULT 0 COMMENT '消息状态;1 Available 2 Deleted 3 Replaced 4 Broken 5 Failed 6 Streaming 7 Pending' ,
`model_content` MEDIUMTEXT COMMENT '模型输入内容' ,
`meta_info` TEXT COMMENT '引用、高亮等文本标记信息' ,
`reasoning_content` TEXT COMMENT '思考内容' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '创建时间' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '更新时间' ,
PRIMARY KEY (id)
) COMMENT = '消息表';
CREATE INDEX idx_conversation_id ON message(conversation_id);
CREATE INDEX idx_run_id ON message(run_id);
DROP TABLE IF EXISTS model_entity;
CREATE TABLE model_entity(
`id` BIGINT UNSIGNED(21) NOT NULL COMMENT '主键ID' ,
`meta_id` BIGINT UNSIGNED(21) NOT NULL COMMENT '模型元信息;id' ,
`name` VARCHAR(128) NOT NULL COMMENT '名称' ,
`description` TEXT COMMENT '描述' ,
`default_params` JSON COMMENT '默认参数' ,
`scenario` BIGINT UNSIGNED(21) NOT NULL COMMENT '模型应用场景' ,
`status` INT(11) NOT NULL DEFAULT 1 COMMENT '模型状态' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Create;Time in Milliseconds' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Update;Time in Milliseconds' ,
`deleted_at` BIGINT UNSIGNED(21) COMMENT 'Delete;Time in Milliseconds' ,
PRIMARY KEY (id)
) COMMENT = '模型信息';
CREATE INDEX idx_scenario ON model_entity(scenario);
CREATE INDEX idx_status ON model_entity(status);
DROP TABLE IF EXISTS model_meta;
CREATE TABLE model_meta(
`id` BIGINT UNSIGNED(21) NOT NULL COMMENT '主键ID' ,
`model_name` VARCHAR(128) NOT NULL COMMENT '模型名称' ,
`protocol` VARCHAR(128) NOT NULL COMMENT '模型协议' ,
`icon_uri` VARCHAR(255) NOT NULL COMMENT 'Icon;URI' ,
`capability` JSON COMMENT '模型能力' ,
`conn_config` JSON COMMENT '模型连接配置' ,
`status` INT(11) NOT NULL DEFAULT 1 COMMENT '模型状态' ,
`description` VARCHAR(2048) NOT NULL COMMENT '模型描述' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Create;Time in Milliseconds' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Update;Time in Milliseconds' ,
`deleted_at` BIGINT UNSIGNED(21) COMMENT 'Delete;Time in Milliseconds' ,
`icon_url` VARCHAR(255) NOT NULL COMMENT 'Icon;URL' ,
PRIMARY KEY (id)
) COMMENT = '模型元信息';
CREATE INDEX idx_status ON model_meta(status);
DROP TABLE IF EXISTS node_execution;
CREATE TABLE node_execution(
`id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'node;execution id' ,
`execute_id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'the;workflow execute id this node execution belongs to' ,
`node_id` VARCHAR(128) NOT NULL COMMENT 'node;key' ,
`node_name` VARCHAR(128) NOT NULL COMMENT 'name;of the node' ,
`node_type` VARCHAR(128) NOT NULL COMMENT 'the;type of the node, in string' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL COMMENT 'create;time in millisecond' ,
`status` TINYINT UNSIGNED(4) NOT NULL COMMENT '1=waiting;2=running 3=success 4=fail' ,
`duration` BIGINT UNSIGNED(21) COMMENT 'execution;duration in millisecond' ,
`input` MEDIUMTEXT COMMENT 'actual;input of the node' ,
`output` MEDIUMTEXT COMMENT 'actual;output of the node' ,
`raw_output` MEDIUMTEXT COMMENT 'the;original output of the node' ,
`error_info` MEDIUMTEXT COMMENT 'error;info' ,
`error_level` VARCHAR(32) COMMENT 'level;of the error' ,
`input_tokens` BIGINT UNSIGNED(21) COMMENT 'number;of input tokens' ,
`output_tokens` BIGINT UNSIGNED(21) COMMENT 'number;of output tokens' ,
`updated_at` BIGINT UNSIGNED(21) COMMENT 'update;time in millisecond' ,
`composite_node_index` BIGINT UNSIGNED(21) COMMENT 'loop;or batch's execution index' ,
`composite_node_items` MEDIUMTEXT COMMENT 'the;items extracted from parent composite node for this index' ,
`parent_node_id` VARCHAR(128) COMMENT 'when;as inner node for loop or batch, this is the parent node's key' ,
`sub_execute_id` BIGINT UNSIGNED(21) COMMENT 'if;this node is sub_workflow, the exe id of the sub workflow' ,
`extra` MEDIUMTEXT COMMENT 'extra;info' ,
PRIMARY KEY (id)
) COMMENT = 'node;节点运行记录,用于记录每次workflow执行时,每个节点的状态信息';
CREATE INDEX idx_execute_id_node_id ON node_execution(execute_id,node_id);
CREATE INDEX idx_execute_id_parent_node_id ON node_execution(execute_id,parent_node_id);
DROP TABLE IF EXISTS online_database_info;
CREATE TABLE online_database_info(
`id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'ID' ,
`app_id` BIGINT UNSIGNED(21) COMMENT 'App;ID' ,
`space_id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'Space;ID' ,
`related_draft_id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'The;primary key ID of draft_database_info table' ,
`is_visible` TINYINT(4) NOT NULL DEFAULT 1 COMMENT 'Visibility:;0 invisible, 1 visible' ,
`prompt_disabled` TINYINT(4) NOT NULL DEFAULT 0 COMMENT 'Support;prompt calls: 1 not supported, 0 supported' ,
`table_name` VARCHAR(255) NOT NULL COMMENT 'Table;name' ,
`table_desc` VARCHAR(256) COMMENT 'Table;description' ,
`table_field` TEXT COMMENT 'Table;field info' ,
`creator_id` BIGINT(20) NOT NULL DEFAULT 0 COMMENT 'Creator;ID' ,
`icon_uri` VARCHAR(255) NOT NULL COMMENT 'Icon;Uri' ,
`physical_table_name` VARCHAR(255) COMMENT 'The;name of the real physical table' ,
`rw_mode` BIGINT(20) NOT NULL DEFAULT 1 COMMENT 'Read;and write permission modes: 1. Limited read and write mode 2. Read-only mode 3. Full read and write mode' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Create;Time in Milliseconds' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Update;Time in Milliseconds' ,
`deleted_at` DATETIME COMMENT 'Delete;Time' ,
PRIMARY KEY (id)
) COMMENT = 'online;database info';
CREATE INDEX idx_space_app_creator_deleted ON online_database_info(space_id,app_id,creator_id,deleted_at);
DROP TABLE IF EXISTS plugin;
CREATE TABLE plugin(
`id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Plugin;ID' ,
`space_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Space;ID' ,
`developer_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Developer;ID' ,
`app_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Application;ID' ,
`icon_uri` VARCHAR(512) NOT NULL COMMENT 'Icon;URI' ,
`server_url` VARCHAR(512) NOT NULL COMMENT 'Server;URL' ,
`plugin_type` TINYINT(4) NOT NULL DEFAULT 0 COMMENT 'Plugin;Type, 1:http, 6:local' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Create;Time in Milliseconds' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Update;Time in Milliseconds' ,
`version` VARCHAR(255) NOT NULL COMMENT 'Plugin;Version, e.g. v1.0.0' ,
`version_desc` TEXT COMMENT 'Plugin;Version Description' ,
`manifest` JSON COMMENT 'Plugin;Manifest' ,
`openapi_doc` JSON COMMENT 'OpenAPI;Document, only stores the root' ,
PRIMARY KEY (id)
) COMMENT = 'Latest;Plugin';
CREATE INDEX idx_space_created_at ON plugin(space_id,created_at);
CREATE INDEX idx_space_updated_at ON plugin(space_id,updated_at);
DROP TABLE IF EXISTS plugin_draft;
CREATE TABLE plugin_draft(
`id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Plugin;ID' ,
`space_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Space;ID' ,
`developer_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Developer;ID' ,
`app_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Application;ID' ,
`icon_uri` VARCHAR(512) NOT NULL COMMENT 'Icon;URI' ,
`server_url` VARCHAR(512) NOT NULL COMMENT 'Server;URL' ,
`plugin_type` TINYINT(4) NOT NULL DEFAULT 0 COMMENT 'Plugin;Type, 1:http, 6:local' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Create;Time in Milliseconds' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Update;Time in Milliseconds' ,
`deleted_at` DATETIME COMMENT 'Delete;Time' ,
`manifest` JSON COMMENT 'Plugin;Manifest' ,
`openapi_doc` JSON COMMENT 'OpenAPI;Document, only stores the root' ,
PRIMARY KEY (id)
) COMMENT = 'Draft;Plugin';
CREATE INDEX idx_app_id ON plugin_draft(app_id,id);
CREATE INDEX idx_space_app_created_at ON plugin_draft(space_id,app_id,created_at);
CREATE INDEX idx_space_app_updated_at ON plugin_draft(space_id,app_id,updated_at);
DROP TABLE IF EXISTS plugin_oauth_auth;
CREATE TABLE plugin_oauth_auth(
`id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Primary;Key' ,
`user_id` VARCHAR(255) NOT NULL COMMENT 'User;ID' ,
`plugin_id` BIGINT(20) NOT NULL DEFAULT 0 COMMENT 'Plugin;ID' ,
`is_draft` BIT(1) NOT NULL DEFAULT 0 COMMENT 'Is;Draft Plugin' ,
`oauth_config` JSON COMMENT 'Authorization;Code OAuth Config' ,
`access_token` TEXT NOT NULL COMMENT 'Access;Token' ,
`refresh_token` TEXT NOT NULL COMMENT 'Refresh;Token' ,
`token_expired_at` BIGINT(20) COMMENT 'Token;Expired in Milliseconds' ,
`next_token_refresh_at` BIGINT(20) COMMENT 'Next;Token Refresh Time in Milliseconds' ,
`last_active_at` BIGINT(20) COMMENT 'Last;active time in Milliseconds' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Create;Time in Milliseconds' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Update;Time in Milliseconds' ,
PRIMARY KEY (id)
) COMMENT = 'Plugin;OAuth Authorization Code Info';
CREATE UNIQUE INDEX uniq_idx_user_plugin_is_draft ON plugin_oauth_auth(user_id,plugin_id,is_draft);
CREATE INDEX idx_last_active_at ON plugin_oauth_auth(last_active_at);
CREATE INDEX idx_last_token_expired_at ON plugin_oauth_auth(token_expired_at);
CREATE INDEX idx_next_token_refresh_at ON plugin_oauth_auth(next_token_refresh_at);
DROP TABLE IF EXISTS plugin_version;
CREATE TABLE plugin_version(
`id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Primary;Key ID' ,
`space_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Space;ID' ,
`developer_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Developer;ID' ,
`plugin_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Plugin;ID' ,
`app_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Application;ID' ,
`icon_uri` VARCHAR(512) NOT NULL COMMENT 'Icon;URI' ,
`server_url` VARCHAR(512) NOT NULL COMMENT 'Server;URL' ,
`plugin_type` TINYINT(4) NOT NULL DEFAULT 0 COMMENT 'Plugin;Type, 1:http, 6:local' ,
`version` VARCHAR(255) NOT NULL COMMENT 'Plugin;Version, e.g. v1.0.0' ,
`version_desc` TEXT COMMENT 'Plugin;Version Description' ,
`manifest` JSON COMMENT 'Plugin;Manifest' ,
`openapi_doc` JSON COMMENT 'OpenAPI;Document, only stores the root' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Create;Time in Milliseconds' ,
`deleted_at` DATETIME COMMENT 'Delete;Time' ,
PRIMARY KEY (id)
) COMMENT = 'Plugin;Version';
CREATE UNIQUE INDEX uniq_idx_plugin_version ON plugin_version(plugin_id,version);
DROP TABLE IF EXISTS prompt_resource;
CREATE TABLE prompt_resource(
`id` BIGINT UNSIGNED(21) NOT NULL AUTO_INCREMENT COMMENT '主键ID' ,
`space_id` BIGINT(20) NOT NULL COMMENT '空间ID' ,
`name` VARCHAR(255) NOT NULL COMMENT '名称' ,
`description` VARCHAR(255) NOT NULL COMMENT '描述' ,
`prompt_text` MEDIUMTEXT COMMENT 'prompt正文' ,
`status` INT(11) NOT NULL COMMENT '状态;0无效,1有效' ,
`creator_id` BIGINT(20) NOT NULL COMMENT '创建者ID' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '创建时间' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '更新时间' ,
PRIMARY KEY (id)
) COMMENT = 'prompt_resource';
CREATE INDEX idx_creator_id ON prompt_resource(creator_id);
DROP TABLE IF EXISTS run_record;
CREATE TABLE run_record(
`id` BIGINT UNSIGNED(21) NOT NULL COMMENT '主键ID' ,
`conversation_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '会话;ID' ,
`section_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'section;ID' ,
`agent_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'agent_id' ,
`user_id` VARCHAR(255) NOT NULL COMMENT 'user;id' ,
`source` TINYINT UNSIGNED(4) NOT NULL DEFAULT 0 COMMENT '执行来源;0 API,' ,
`status` VARCHAR(255) NOT NULL COMMENT '状态,0;Unknown, 1-Created,2-InProgress,3-Completed,4-Failed,5-Expired,6-Cancelled,7-RequiresAction' ,
`creator_id` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '创建者标识' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '创建时间' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '更新时间' ,
`failed_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '失败时间' ,
`last_error` TEXT COMMENT 'error;message' ,
`completed_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '结束时间' ,
`chat_request` TEXT COMMENT '保存原始请求的部分字段' ,
`ext` TEXT COMMENT '扩展字段' ,
`usage` JSON COMMENT 'usage' ,
PRIMARY KEY (id)
) COMMENT = '执行记录表';
CREATE INDEX idx_c_s ON run_record(conversation_id,section_id);
DROP TABLE IF EXISTS shortcut_command;
CREATE TABLE shortcut_command(
`id` BIGINT UNSIGNED(21) NOT NULL AUTO_INCREMENT COMMENT '主键ID' ,
`object_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '实体ID;该实体可用这个指令' ,
`command_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '命令ID' ,
`command_name` VARCHAR(255) NOT NULL COMMENT '命令名称' ,
`shortcut_command` VARCHAR(255) NOT NULL COMMENT '快捷指令' ,
`description` VARCHAR(2000) NOT NULL COMMENT '命令描述' ,
`send_type` TINYINT UNSIGNED(4) NOT NULL DEFAULT 0 COMMENT '发送类型;0:query 1:panel' ,
`tool_type` TINYINT UNSIGNED(4) NOT NULL DEFAULT 0 COMMENT '使用工具的type;1:workFlow 2:插件' ,
`work_flow_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '使用workFlow的id' ,
`plugin_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '使用插件的id' ,
`plugin_tool_name` VARCHAR(255) NOT NULL COMMENT '使用插件的api_name' ,
`template_query` TEXT COMMENT 'query模板' ,
`components` JSON COMMENT 'panel参数' ,
`card_schema` TEXT COMMENT '卡片schema' ,
`tool_info` JSON COMMENT '工具信息;包含name+变量列表' ,
`status` TINYINT UNSIGNED(4) NOT NULL DEFAULT 0 COMMENT '状态;0无效,1有效' ,
`creator_id` BIGINT UNSIGNED(21) DEFAULT 0 COMMENT '创建者ID' ,
`is_online` TINYINT UNSIGNED(4) NOT NULL DEFAULT 0 COMMENT '是否为线上信息;0草稿 1线上' ,
`created_at` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '创建时间' ,
`updated_at` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '更新时间' ,
`agent_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'multi的指令时;该指令由哪个节点执行' ,
`shortcut_icon` JSON COMMENT '快捷指令图标' ,
`plugin_tool_id` BIGINT(20) NOT NULL DEFAULT 0 COMMENT 'tool_id' ,
PRIMARY KEY (id)
) COMMENT = 'bot快捷指令表';
CREATE UNIQUE INDEX uniq_object_command_id_type ON shortcut_command(object_id,command_id,is_online);
DROP TABLE IF EXISTS single_agent_draft;
CREATE TABLE single_agent_draft(
`id` BIGINT UNSIGNED(21) NOT NULL AUTO_INCREMENT COMMENT 'Primary;Key ID' ,
`agent_id` BIGINT(20) NOT NULL DEFAULT 0 COMMENT 'Agent;ID' ,
`creator_id` BIGINT(20) NOT NULL DEFAULT 0 COMMENT 'Creator;ID' ,
`space_id` BIGINT(20) NOT NULL DEFAULT 0 COMMENT 'Space;ID' ,
`name` VARCHAR(255) NOT NULL COMMENT 'Agent;Name' ,
`description` TEXT NOT NULL COMMENT 'Agent;Description' ,
`icon_uri` VARCHAR(255) NOT NULL COMMENT 'Icon;URI' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Create;Time in Milliseconds' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Update;Time in Milliseconds' ,
`deleted_at` DATETIME COMMENT 'delete;time in millisecond' ,
`variables_meta_id` BIGINT(20) COMMENT 'variables;meta 表 ID' ,
`model_info` JSON COMMENT 'Model;Configuration Information' ,
`onboarding_info` JSON COMMENT 'Onboarding;Information' ,
`prompt` JSON COMMENT 'Agent;Prompt Configuration' ,
`plugin` JSON COMMENT 'Agent;Plugin Base Configuration' ,
`knowledge` JSON COMMENT 'Agent;Knowledge Base Configuration' ,
`workflow` JSON COMMENT 'Agent;Workflow Configuration' ,
`suggest_reply` JSON COMMENT 'Suggested;Replies' ,
`jump_config` JSON COMMENT 'Jump;Configuration' ,
`background_image_info_list` JSON COMMENT 'Background;image' ,
`database_config` JSON COMMENT 'Agent;Database Base Configuration' ,
`shortcut_command` JSON COMMENT 'shortcut;command' ,
PRIMARY KEY (id)
) COMMENT = 'Single;Agent Draft Copy Table';
CREATE UNIQUE INDEX uniq_agent_id ON single_agent_draft(agent_id);
CREATE INDEX idx_creator_id ON single_agent_draft(creator_id);
DROP TABLE IF EXISTS single_agent_publish;
CREATE TABLE single_agent_publish(
`id` BIGINT UNSIGNED(21) NOT NULL AUTO_INCREMENT COMMENT '主键id' ,
`agent_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'agent_id' ,
`publish_id` VARCHAR(50) NOT NULL COMMENT '发布;id' ,
`connector_ids` JSON COMMENT '发布的;connector_ids' ,
`version` VARCHAR(255) NOT NULL COMMENT 'Agent;Version' ,
`publish_info` TEXT COMMENT '发布信息' ,
`publish_time` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '发布时间' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Create;Time in Milliseconds' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Update;Time in Milliseconds' ,
`creator_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '发布人;user_id' ,
`status` TINYINT(4) NOT NULL DEFAULT 0 COMMENT '状态;0:使用中 1:删除 3:禁用' ,
`extra` JSON COMMENT '扩展字段' ,
PRIMARY KEY (id)
) COMMENT = 'bot;渠道和发布版本流水表';
CREATE INDEX idx_agent_id_version ON single_agent_publish(agent_id,version);
CREATE INDEX idx_creator_id ON single_agent_publish(creator_id);
CREATE INDEX idx_publish_id ON single_agent_publish(publish_id);
DROP TABLE IF EXISTS single_agent_version;
CREATE TABLE single_agent_version(
`id` BIGINT UNSIGNED(21) NOT NULL AUTO_INCREMENT COMMENT 'Primary;Key ID' ,
`agent_id` BIGINT(20) NOT NULL DEFAULT 0 COMMENT 'Agent;ID' ,
`creator_id` BIGINT(20) NOT NULL DEFAULT 0 COMMENT 'Creator;ID' ,
`space_id` BIGINT(20) NOT NULL DEFAULT 0 COMMENT 'Space;ID' ,
`name` VARCHAR(255) NOT NULL COMMENT 'Agent;Name' ,
`description` TEXT NOT NULL COMMENT 'Agent;Description' ,
`icon_uri` VARCHAR(255) NOT NULL COMMENT 'Icon;URI' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Create;Time in Milliseconds' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Update;Time in Milliseconds' ,
`deleted_at` DATETIME COMMENT 'delete;time in millisecond' ,
`variables_meta_id` BIGINT(20) COMMENT 'variables;meta 表 ID' ,
`model_info` JSON COMMENT 'Model;Configuration Information' ,
`onboarding_info` JSON COMMENT 'Onboarding;Information' ,
`prompt` JSON COMMENT 'Agent;Prompt Configuration' ,
`plugin` JSON COMMENT 'Agent;Plugin Base Configuration' ,
`knowledge` JSON COMMENT 'Agent;Knowledge Base Configuration' ,
`workflow` JSON COMMENT 'Agent;Workflow Configuration' ,
`suggest_reply` JSON COMMENT 'Suggested;Replies' ,
`jump_config` JSON COMMENT 'Jump;Configuration' ,
`connector_id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'Connector;ID' ,
`version` VARCHAR(255) NOT NULL COMMENT 'Agent;Version' ,
`background_image_info_list` JSON COMMENT 'Background;image' ,
`database_config` JSON COMMENT 'Agent;Database Base Configuration' ,
`shortcut_command` JSON COMMENT 'shortcut;command' ,
PRIMARY KEY (id)
) COMMENT = 'Single;Agent Version Copy Table';
CREATE UNIQUE INDEX uniq_agent_id_and_version_connector_id ON single_agent_version(agent_id,version,connector_id);
CREATE INDEX idx_creator_id ON single_agent_version(creator_id);
DROP TABLE IF EXISTS space;
CREATE TABLE space(
`id` BIGINT UNSIGNED(21) NOT NULL AUTO_INCREMENT COMMENT 'Primary;Key ID, Space ID' ,
`owner_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Owner;ID' ,
`name` VARCHAR(200) NOT NULL COMMENT 'Space;Name' ,
`description` VARCHAR(2000) NOT NULL COMMENT 'Space;Description' ,
`icon_uri` VARCHAR(200) NOT NULL COMMENT 'Icon;URI' ,
`creator_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Creator;ID' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Creation;Time (Milliseconds)' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Update;Time (Milliseconds)' ,
`deleted_at` BIGINT UNSIGNED(21) COMMENT 'Deletion;Time (Milliseconds)' ,
PRIMARY KEY (id)
) COMMENT = 'Space;Table';
CREATE INDEX idx_creator_id ON space(creator_id);
CREATE INDEX idx_owner_id ON space(owner_id);
DROP TABLE IF EXISTS space_user;
CREATE TABLE space_user(
`id` BIGINT UNSIGNED(21) NOT NULL AUTO_INCREMENT COMMENT 'Primary;Key ID, Auto Increment' ,
`space_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Space;ID' ,
`user_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'User;ID' ,
`role_type` INT(11) NOT NULL DEFAULT 3 COMMENT 'Role;Type: 1.owner 2.admin 3.member' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Creation;Time (Milliseconds)' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Update;Time (Milliseconds)' ,
PRIMARY KEY (id)
) COMMENT = 'Space;Member Table';
CREATE UNIQUE INDEX uniq_space_user ON space_user(space_id,user_id);
CREATE INDEX idx_user_id ON space_user(user_id);
DROP TABLE IF EXISTS table_7531376064140935168;
CREATE TABLE table_7531376064140935168(
`f_1` VARCHAR(255) COMMENT '姓名' ,
`f_2` VARCHAR(255) NOT NULL COMMENT '手机号' ,
`bstudio_id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '' ,
`bstudio_connector_uid` VARCHAR(255) NOT NULL COMMENT '' ,
`bstudio_connector_id` VARCHAR(255) NOT NULL COMMENT '' ,
`bstudio_create_time` TIMESTAMP NOT NULL DEFAULT 'CURRENT_TIMESTAMP' COMMENT '' ,
PRIMARY KEY (bstudio_id)
) COMMENT = '';
CREATE INDEX idx_uid ON table_7531376064140935168(bstudio_connector_uid,bstudio_connector_id);
DROP TABLE IF EXISTS table_7531376064480673792;
CREATE TABLE table_7531376064480673792(
`f_1` VARCHAR(255) COMMENT '姓名' ,
`f_2` VARCHAR(255) NOT NULL COMMENT '手机号' ,
`bstudio_id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '' ,
`bstudio_connector_uid` VARCHAR(255) NOT NULL COMMENT '' ,
`bstudio_connector_id` VARCHAR(255) NOT NULL COMMENT '' ,
`bstudio_create_time` TIMESTAMP NOT NULL DEFAULT 'CURRENT_TIMESTAMP' COMMENT '' ,
PRIMARY KEY (bstudio_id)
) COMMENT = '';
CREATE INDEX idx_uid ON table_7531376064480673792(bstudio_connector_uid,bstudio_connector_id);
DROP TABLE IF EXISTS template;
CREATE TABLE template(
`id` BIGINT UNSIGNED(21) NOT NULL AUTO_INCREMENT COMMENT 'Primary;Key ID' ,
`agent_id` BIGINT(20) NOT NULL DEFAULT 0 COMMENT 'Agent;ID' ,
`workflow_id` BIGINT(20) NOT NULL DEFAULT 0 COMMENT 'Workflow;ID' ,
`space_id` BIGINT(20) NOT NULL DEFAULT 0 COMMENT 'Space;ID' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Create;Time in Milliseconds' ,
`heat` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Heat' ,
`product_entity_type` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Product;Entity Type' ,
`meta_info` JSON COMMENT 'Meta;Info' ,
`agent_extra` JSON COMMENT 'Agent;Extra Info' ,
`workflow_extra` JSON COMMENT 'Workflow;Extra Info' ,
`project_extra` JSON COMMENT 'Project;Extra Info' ,
PRIMARY KEY (id)
) COMMENT = 'Template;Info Table';
CREATE UNIQUE INDEX uniq_agent_id ON template(agent_id);
DROP TABLE IF EXISTS tool;
CREATE TABLE tool(
`id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Tool;ID' ,
`plugin_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Plugin;ID' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Create;Time in Milliseconds' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Update;Time in Milliseconds' ,
`version` VARCHAR(255) NOT NULL COMMENT 'Tool;Version, e.g. v1.0.0' ,
`sub_url` VARCHAR(512) NOT NULL COMMENT 'Sub;URL Path' ,
`method` VARCHAR(64) NOT NULL COMMENT 'HTTP;Request Method' ,
`operation` JSON COMMENT 'Tool;Openapi Operation Schema' ,
`activated_status` TINYINT UNSIGNED(4) NOT NULL DEFAULT 0 COMMENT '0:activated;;1:deactivated' ,
PRIMARY KEY (id)
) COMMENT = 'Latest;Tool';
CREATE UNIQUE INDEX uniq_idx_plugin_sub_url_method ON tool(plugin_id,sub_url,method);
CREATE INDEX idx_plugin_activated_status ON tool(plugin_id,activated_status);
DROP TABLE IF EXISTS tool_draft;
CREATE TABLE tool_draft(
`id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Tool;ID' ,
`plugin_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Plugin;ID' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Create;Time in Milliseconds' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Update;Time in Milliseconds' ,
`sub_url` VARCHAR(512) NOT NULL COMMENT 'Sub;URL Path' ,
`method` VARCHAR(64) NOT NULL COMMENT 'HTTP;Request Method' ,
`operation` JSON COMMENT 'Tool;Openapi Operation Schema' ,
`debug_status` TINYINT UNSIGNED(4) NOT NULL DEFAULT 0 COMMENT '0:not;pass; 1:pass' ,
`activated_status` TINYINT UNSIGNED(4) NOT NULL DEFAULT 0 COMMENT '0:activated;;1:deactivated' ,
PRIMARY KEY (id)
) COMMENT = 'Draft;Tool';
CREATE UNIQUE INDEX uniq_idx_plugin_sub_url_method ON tool_draft(plugin_id,sub_url,method);
CREATE INDEX idx_plugin_created_at_id ON tool_draft(plugin_id,created_at,id);
DROP TABLE IF EXISTS tool_version;
CREATE TABLE tool_version(
`id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Primary;Key ID' ,
`tool_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Tool;ID' ,
`plugin_id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Plugin;ID' ,
`version` VARCHAR(255) NOT NULL COMMENT 'Tool;Version, e.g. v1.0.0' ,
`sub_url` VARCHAR(512) NOT NULL COMMENT 'Sub;URL Path' ,
`method` VARCHAR(64) NOT NULL COMMENT 'HTTP;Request Method' ,
`operation` JSON COMMENT 'Tool;Openapi Operation Schema' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Create;Time in Milliseconds' ,
`deleted_at` DATETIME COMMENT 'Delete;Time' ,
PRIMARY KEY (id)
) COMMENT = 'Tool;Version';
CREATE UNIQUE INDEX uniq_idx_tool_version ON tool_version(tool_id,version);
DROP TABLE IF EXISTS user;
CREATE TABLE user(
`id` BIGINT UNSIGNED(21) NOT NULL AUTO_INCREMENT COMMENT 'Primary;Key ID' ,
`name` VARCHAR(128) NOT NULL COMMENT 'User;Nickname' ,
`unique_name` VARCHAR(128) NOT NULL COMMENT 'User;Unique Name' ,
`email` VARCHAR(128) NOT NULL COMMENT 'Email' ,
`password` VARCHAR(128) NOT NULL COMMENT 'Password;(Encrypted)' ,
`description` VARCHAR(512) NOT NULL COMMENT 'User;Description' ,
`icon_uri` VARCHAR(512) NOT NULL COMMENT 'Avatar;URI' ,
`user_verified` BIT(1) NOT NULL DEFAULT 0 COMMENT 'User;Verification Status' ,
`locale` VARCHAR(128) NOT NULL COMMENT 'Locale' ,
`session_key` VARCHAR(256) NOT NULL COMMENT 'Session;Key' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Creation;Time (Milliseconds)' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'Update;Time (Milliseconds)' ,
`deleted_at` BIGINT UNSIGNED(21) COMMENT 'Deletion;Time (Milliseconds)' ,
PRIMARY KEY (id)
) COMMENT = 'User;Table';
CREATE UNIQUE INDEX uniq_email ON user(email);
CREATE UNIQUE INDEX uniq_unique_name ON user(unique_name);
CREATE INDEX idx_session_key ON user(session_key);
DROP TABLE IF EXISTS variable_instance;
CREATE TABLE variable_instance(
`id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '主键ID' ,
`biz_type` TINYINT UNSIGNED(4) NOT NULL COMMENT '1;for agent,2 for app' ,
`biz_id` VARCHAR(128) NOT NULL COMMENT '1;for agent_id,2 for app_id' ,
`version` VARCHAR(255) NOT NULL COMMENT 'agent;or project 版本,为空代表草稿态' ,
`keyword` VARCHAR(255) NOT NULL COMMENT '记忆的KEY' ,
`type` TINYINT(4) NOT NULL COMMENT '记忆类型;1 KV 2 list' ,
`content` TEXT COMMENT '记忆内容' ,
`connector_uid` VARCHAR(255) NOT NULL COMMENT '二方用户ID' ,
`connector_id` BIGINT(20) NOT NULL COMMENT '二方id,;e.g. coze = 10000010' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '创建时间' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '更新时间' ,
PRIMARY KEY (id)
) COMMENT = 'KV;Memory';
CREATE INDEX idx_connector_key ON variable_instance(biz_id,biz_type,version,connector_uid,connector_id);
DROP TABLE IF EXISTS variables_meta;
CREATE TABLE variables_meta(
`id` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT '主键ID' ,
`creator_id` BIGINT UNSIGNED(21) NOT NULL COMMENT '创建者ID' ,
`biz_type` TINYINT UNSIGNED(4) NOT NULL COMMENT '1;for agent,2 for app' ,
`biz_id` VARCHAR(128) NOT NULL COMMENT '1;for agent_id,2 for app_id' ,
`variable_list` JSON COMMENT '变量配置的json数据' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'create;time' ,
`updated_at` BIGINT UNSIGNED(21) NOT NULL DEFAULT 0 COMMENT 'update;time' ,
`version` VARCHAR(255) NOT NULL COMMENT 'project版本;为空代表草稿态' ,
PRIMARY KEY (id)
) COMMENT = 'KV;Memory meta';
CREATE UNIQUE INDEX uniq_project_key ON variables_meta(biz_id,biz_type,version);
CREATE INDEX idx_user_key ON variables_meta(creator_id);
DROP TABLE IF EXISTS workflow_draft;
CREATE TABLE workflow_draft(
`id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'workflow;ID' ,
`canvas` MEDIUMTEXT NOT NULL COMMENT '前端;schema' ,
`input_params` MEDIUMTEXT COMMENT '入参;schema' ,
`output_params` MEDIUMTEXT COMMENT '出参;schema' ,
`test_run_success` BIT(1) NOT NULL DEFAULT 0 COMMENT '0;未运行, 1 运行成功' ,
`modified` BIT(1) NOT NULL DEFAULT 0 COMMENT '0;未被修改, 1 已被修改' ,
`updated_at` BIGINT UNSIGNED(21) COMMENT '' ,
`deleted_at` DATETIME COMMENT '' ,
`commit_id` VARCHAR(255) NOT NULL COMMENT 'used;to uniquely identify a draft snapshot' ,
PRIMARY KEY (id)
) COMMENT = 'workflow;画布草稿表,用于记录workflow最新的草稿画布信息';
CREATE INDEX idx_updated_at ON workflow_draft(updated_at);
DROP TABLE IF EXISTS workflow_execution;
CREATE TABLE workflow_execution(
`id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'execute;id' ,
`workflow_id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'workflow_id' ,
`version` VARCHAR(50) COMMENT 'workflow;version. empty if is draft' ,
`space_id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'the;space id the workflow belongs to' ,
`mode` TINYINT UNSIGNED(4) NOT NULL COMMENT 'the;execution mode: 1. debug run 2. release run 3. node debug' ,
`operator_id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'the;user id that runs this workflow' ,
`connector_id` BIGINT UNSIGNED(21) COMMENT 'the;connector on which this execution happened' ,
`connector_uid` VARCHAR(64) COMMENT 'user;id of the connector' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL COMMENT 'create;time in millisecond' ,
`log_id` VARCHAR(128) COMMENT 'log;id' ,
`status` TINYINT UNSIGNED(4) COMMENT '1=running;2=success 3=fail 4=interrupted' ,
`duration` BIGINT UNSIGNED(21) COMMENT 'execution;duration in millisecond' ,
`input` MEDIUMTEXT COMMENT 'actual;input of this execution' ,
`output` MEDIUMTEXT COMMENT 'the;actual output of this execution' ,
`error_code` VARCHAR(255) COMMENT 'error;code if any' ,
`fail_reason` MEDIUMTEXT COMMENT 'the;reason for failure' ,
`input_tokens` BIGINT UNSIGNED(21) COMMENT 'number;of input tokens' ,
`output_tokens` BIGINT UNSIGNED(21) COMMENT 'number;of output tokens' ,
`updated_at` BIGINT UNSIGNED(21) COMMENT 'update;time in millisecond' ,
`root_execution_id` BIGINT UNSIGNED(21) COMMENT 'the;top level execution id. Null if this is the root' ,
`parent_node_id` VARCHAR(128) COMMENT 'the;node key for the sub_workflow node that executes this workflow' ,
`app_id` BIGINT UNSIGNED(21) COMMENT 'app;id this workflow execution belongs to' ,
`node_count` MEDIUMINT UNSIGNED(9) COMMENT 'the;total node count of the workflow' ,
`resume_event_id` BIGINT UNSIGNED(21) COMMENT 'the;current event ID which is resuming' ,
`agent_id` BIGINT UNSIGNED(21) COMMENT 'the;agent that this execution binds to' ,
`sync_pattern` TINYINT UNSIGNED(4) COMMENT 'the;sync pattern 1. sync 2. async 3. stream' ,
`commit_id` VARCHAR(255) COMMENT 'draft;commit id this execution belongs to' ,
PRIMARY KEY (id)
) COMMENT = 'workflow;执行记录表,用于记录每次workflow执行时的状态';
CREATE INDEX idx_workflow_id_version_mode_created_at ON workflow_execution(workflow_id,version,mode,created_at);
DROP TABLE IF EXISTS workflow_meta;
CREATE TABLE workflow_meta(
`id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'workflow;id' ,
`name` VARCHAR(256) NOT NULL COMMENT 'workflow;name' ,
`description` VARCHAR(2000) NOT NULL COMMENT 'workflow;description' ,
`icon_uri` VARCHAR(256) NOT NULL COMMENT 'icon;uri' ,
`status` TINYINT UNSIGNED(4) NOT NULL COMMENT '0:未发布过,;1:已发布过' ,
`content_type` TINYINT UNSIGNED(4) NOT NULL COMMENT '0用户;1官方' ,
`mode` TINYINT UNSIGNED(4) NOT NULL COMMENT '0:workflow,;3:chat_flow' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL COMMENT 'create;time in millisecond' ,
`updated_at` BIGINT UNSIGNED(21) COMMENT 'update;time in millisecond' ,
`deleted_at` DATETIME COMMENT 'delete;time in millisecond' ,
`creator_id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'user;id for creator' ,
`tag` TINYINT UNSIGNED(4) COMMENT 'template;tag: Tag: 1=All, 2=Hot, 3=Information, 4=Music, 5=Picture, 6=UtilityTool, 7=Life, 8=Traval, 9=Network, 10=System, 11=Movie, 12=Office, 13=Shopping, 14=Education, 15=Health, 16=Social, 17=Entertainment, 18=Finance, 100=Hidden' ,
`author_id` BIGINT UNSIGNED(21) NOT NULL COMMENT '原作者用户;ID' ,
`space_id` BIGINT UNSIGNED(21) NOT NULL COMMENT '空间;ID' ,
`updater_id` BIGINT UNSIGNED(21) COMMENT '更新元信息的用户;ID' ,
`source_id` BIGINT UNSIGNED(21) COMMENT '复制来源的;workflow ID' ,
`app_id` BIGINT UNSIGNED(21) COMMENT '应用;ID' ,
`latest_version` VARCHAR(50) COMMENT 'the;version of the most recent publish' ,
`latest_version_ts` BIGINT UNSIGNED(21) COMMENT 'create;time of latest version' ,
PRIMARY KEY (id)
) COMMENT = 'workflow;元信息表,用于记录workflow基本的元信息';
CREATE INDEX idx_app_id ON workflow_meta(app_id);
CREATE INDEX idx_latest_version_ts ON workflow_meta(latest_version_ts);
CREATE INDEX idx_space_id_app_id_status_latest_version_ts ON workflow_meta(space_id,app_id,status,latest_version_ts);
DROP TABLE IF EXISTS workflow_reference;
CREATE TABLE workflow_reference(
`id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'workflow;id' ,
`referred_id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'the;id of the workflow that is referred by other entities' ,
`referring_id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'the;entity id that refers this workflow' ,
`refer_type` TINYINT UNSIGNED(4) NOT NULL COMMENT '1;subworkflow 2 tool' ,
`referring_biz_type` TINYINT UNSIGNED(4) NOT NULL COMMENT 'the;biz type the referring entity belongs to: 1. workflow 2. agent' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL COMMENT 'create;time in millisecond' ,
`status` TINYINT UNSIGNED(4) NOT NULL COMMENT 'whether;this reference currently takes effect. 0: disabled 1: enabled' ,
`deleted_at` DATETIME COMMENT '' ,
PRIMARY KEY (id)
) COMMENT = 'workflow;关联关系表,用于记录workflow 直接互相引用关系';
CREATE UNIQUE INDEX uniq_referred_id_referring_id_refer_type ON workflow_reference(referred_id,referring_id,refer_type);
CREATE INDEX idx_referred_id_referring_biz_type_status ON workflow_reference(referred_id,referring_biz_type,status);
CREATE INDEX idx_referring_id_status ON workflow_reference(referring_id,status);
DROP TABLE IF EXISTS workflow_snapshot;
CREATE TABLE workflow_snapshot(
`workflow_id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'workflow;id this snapshot belongs to' ,
`commit_id` VARCHAR(255) NOT NULL COMMENT 'the;commit id of the workflow draft' ,
`canvas` MEDIUMTEXT NOT NULL COMMENT 'frontend;schema for this snapshot' ,
`input_params` MEDIUMTEXT COMMENT 'input;parameter info' ,
`output_params` MEDIUMTEXT COMMENT 'output;parameter info' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL COMMENT '' ,
`id` BIGINT UNSIGNED(21) NOT NULL AUTO_INCREMENT COMMENT 'ID' ,
PRIMARY KEY (id)
) COMMENT = 'snapshot;for executed workflow draft';
CREATE UNIQUE INDEX uniq_workflow_id_commit_id ON workflow_snapshot(workflow_id,commit_id);
DROP TABLE IF EXISTS workflow_version;
CREATE TABLE workflow_version(
`id` BIGINT UNSIGNED(21) NOT NULL AUTO_INCREMENT COMMENT 'ID' ,
`workflow_id` BIGINT UNSIGNED(21) NOT NULL COMMENT 'workflow;id' ,
`version` VARCHAR(50) NOT NULL COMMENT '发布版本' ,
`version_description` VARCHAR(2000) NOT NULL COMMENT '版本描述' ,
`canvas` MEDIUMTEXT NOT NULL COMMENT '前端;schema' ,
`input_params` MEDIUMTEXT COMMENT '' ,
`output_params` MEDIUMTEXT COMMENT '' ,
`creator_id` BIGINT UNSIGNED(21) NOT NULL COMMENT '发布用户;ID' ,
`created_at` BIGINT UNSIGNED(21) NOT NULL COMMENT '创建时间毫秒时间戳' ,
`deleted_at` DATETIME COMMENT '删除毫秒时间戳' ,
`commit_id` VARCHAR(255) NOT NULL COMMENT 'the;commit id corresponding to this version' ,
PRIMARY KEY (id)
) COMMENT = 'workflow;画布版本信息表,用于记录不同版本的画布信息';
CREATE UNIQUE INDEX uniq_workflow_id_version ON workflow_version(workflow_id,version);
CREATE INDEX idx_id_created_at ON workflow_version(workflow_id,created_at);