Improve startup speed

This commit is contained in:
SwallowGG
2023-12-12 20:06:51 +08:00
parent 694d5ff555
commit 1ae7016d02
39 changed files with 17 additions and 833 deletions

View File

@ -36,8 +36,6 @@ import java.io.InputStream;
import java.net.JarURLConnection;
import java.net.URL;
import java.util.Enumeration;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
@ -46,6 +44,9 @@ public class Dbutils {
private static final ThreadLocal<SqlSession> SQL_SESSION_THREAD_LOCAL = new ThreadLocal<>();
public static void init() {
}
public static void setSession() {
SqlSession session = sqlSessionFactory.openSession(true);
SQL_SESSION_THREAD_LOCAL.set(session);

View File

@ -26,8 +26,6 @@ spring:
resources:
static-locations[0]: classpath:/static/
# 用于数据库表结构版本管理
flyway:
locations: classpath:db/migration
servlet:
multipart:
max-file-size: -1
@ -41,9 +39,6 @@ chat2db:
# flywaydb 输出执行sql的日志
logging:
level:
org:
flywaydb: debug
ai:
chat2db:
server:

View File

@ -1,70 +0,0 @@
CREATE TABLE IF NOT EXISTS `data_source` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL COMMENT '创建时间',
`gmt_modified` datetime NOT NULL COMMENT '修改时间',
`alias` varchar(128) DEFAULT NULL COMMENT '别名',
`url` varchar(1024) DEFAULT NULL COMMENT '连接地址',
`user_name` varchar(128) DEFAULT NULL COMMENT '用户名',
`password` varchar(256) DEFAULT NULL COMMENT '密码',
`type` varchar(32) DEFAULT NULL COMMENT '数据库类型',
`env_type` varchar(32) DEFAULT NULL COMMENT '环境类型',
`user_id` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '用户id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='数据源连接表'
;
CREATE TABLE IF NOT EXISTS `operation_log` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`data_source_id` bigint(20) unsigned NOT NULL COMMENT '数据源连接ID',
`database_name` varchar(128) DEFAULT NULL COMMENT 'db名称',
`type` varchar(32) NOT NULL COMMENT '数据库类型',
`ddl` text DEFAULT NULL COMMENT 'ddl内容',
`user_id` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '用户id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='我的执行记录表'
;
CREATE TABLE IF NOT EXISTS `operation_saved` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`data_source_id` bigint(20) unsigned NOT NULL COMMENT '数据源连接ID',
`database_name` varchar(128) DEFAULT NULL COMMENT 'db名称',
`name` varchar(128) DEFAULT NULL COMMENT '保存名称',
`type` varchar(32) NOT NULL COMMENT '数据库类型',
`status` varchar(32) NOT NULL COMMENT 'ddl语句状态:DRAFT/RELEASE',
`ddl` text DEFAULT NULL COMMENT 'ddl内容',
`tab_opened` text DEFAULT NULL COMMENT '是否在tab中被打开,y表示打开,n表示未打开',
`user_id` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '用户id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='我的保存表'
;
CREATE TABLE IF NOT EXISTS `dbhub_user` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`user_name` varchar(32) NOT NULL COMMENT '用户名',
`password` varchar(256) DEFAULT NULL COMMENT '密码',
`nick_name` varchar(256) DEFAULT NULL COMMENT '昵称',
`email` varchar(256) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数据源连接表'
;
CREATE TABLE IF NOT EXISTS `system_config` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`code` varchar(32) NOT NULL COMMENT '配置项编码',
`content` varchar(256) DEFAULT NULL COMMENT '配置项内容',
`summary` varchar(256) DEFAULT NULL COMMENT '配置项说明',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='配置中心表'
;
create UNIQUE INDEX uk_code on system_config(code) ;
INSERT INTO `dbhub_user` (`user_name`,`password`,`nick_name`) VALUES ('dbhub','$2a$10$yElafjDHPoPHSaCo6cjJGuWmtXWNVz/cOOOtDg99eNfvUfalzfane','管理员');

View File

@ -1 +0,0 @@
ALTER TABLE `operation_saved` ADD COLUMN `db_schema_name` varchar(128) NULL COMMENT 'schema名称';

View File

@ -1,9 +0,0 @@
ALTER TABLE `data_source` ADD COLUMN `host` varchar(128) NULL COMMENT 'host地址';
ALTER TABLE `data_source` ADD COLUMN `port` varchar(128) NULL COMMENT '端口';
ALTER TABLE `data_source` ADD COLUMN `ssh` varchar(1024) NULL COMMENT 'ssh配置信息json';
ALTER TABLE `data_source` ADD COLUMN `ssl` varchar(1024) NULL COMMENT 'ssl配置信息json';
ALTER TABLE `data_source` ADD COLUMN `sid` varchar(32) NULL COMMENT 'sid';
ALTER TABLE `data_source` ADD COLUMN `driver` varchar(128) NULL COMMENT '驱动信息';
ALTER TABLE `data_source` ADD COLUMN `jdbc` varchar(128) NULL COMMENT 'jdbc版本';
ALTER TABLE `data_source` ADD COLUMN `extend_info` varchar(4096) NULL COMMENT '自定义扩展字段json';
create INDEX idx_user_id on data_source(user_id) ;

View File

@ -1,39 +0,0 @@
CREATE TABLE IF NOT EXISTS `dashboard` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`name` varchar(128) DEFAULT NULL COMMENT '报表名称',
`description` varchar(128) DEFAULT NULL COMMENT '报表描述',
`schema` text DEFAULT NULL COMMENT '报表布局信息',
`deleted` text DEFAULT NULL COMMENT '是否被删除,y表示删除,n表示未删除',
`user_id` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '用户id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='自定义报表表'
;
CREATE TABLE IF NOT EXISTS `chart` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`name` varchar(128) DEFAULT NULL COMMENT '图表名称',
`description` varchar(128) DEFAULT NULL COMMENT '图表描述',
`schema` text DEFAULT NULL COMMENT '图表信息',
`data_source_id` bigint(20) unsigned DEFAULT NULL COMMENT '数据源连接ID',
`type` varchar(32) DEFAULT NULL COMMENT '数据库类型',
`database_name` varchar(128) DEFAULT NULL COMMENT 'db名称',
`ddl` text DEFAULT NULL COMMENT 'ddl内容',
`deleted` text DEFAULT NULL COMMENT '是否被删除,y表示删除,n表示未删除',
`user_id` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '用户id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='自定义报表表'
;
CREATE TABLE IF NOT EXISTS `dashboard_chart_relation` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`dashboard_id` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '报表id',
`chart_id` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '图表id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='自定义报表表'
;

View File

@ -1,14 +0,0 @@
CREATE TABLE IF NOT EXISTS `pin_table` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`data_source_id` bigint(20) unsigned NOT NULL COMMENT '数据源连接ID',
`database_name` varchar(128) DEFAULT NULL COMMENT 'db名称',
`schema_name` varchar(128) DEFAULT NULL COMMENT 'schema名称',
`table_name` varchar(128) DEFAULT NULL COMMENT 'table_name',
`deleted` text DEFAULT NULL COMMENT '是否被删除,y表示删除,n表示未删除',
`user_id` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '用户id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='PIN TABLES'
;
create INDEX idx_user_id_data_source_id on pin_table(user_id,data_source_id) ;

View File

@ -1,41 +0,0 @@
INSERT INTO DATA_SOURCE (GMT_CREATE, GMT_MODIFIED, ALIAS, URL, USER_NAME, PASSWORD, TYPE, USER_ID, HOST, PORT, SSH,JDBC)
VALUES (CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'DEMO@db.sqlgpt.cn', 'jdbc:mysql://db.sqlgpt.cn:3306/DEMO', 'demo', 'kok39AYoOSM=', 'MYSQL', 0, 'db.sqlgpt.cn', '3306', '{"use":false}', '8.0');
INSERT INTO DASHBOARD (ID, GMT_CREATE, GMT_MODIFIED, NAME, DESCRIPTION, SCHEMA, DELETED, USER_ID)
VALUES (1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '学生成绩分析', '学生成绩分析', '[[1],[2],[3]]', 'N', 0);
INSERT INTO CHART (ID, GMT_CREATE, GMT_MODIFIED, SCHEMA, DATA_SOURCE_ID, DATABASE_NAME, DDL, DELETED, USER_ID)
VALUES (1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '{"chartType":"Column","xAxis":"name","yAxis":"total_score"}', 1, 'DEMO', 'SELECT s.name, sc.chinese_score, sc.math_score, sc.english_score, sc.science_score, sc.humanities_score,
(sc.chinese_score + sc.math_score + sc.english_score + sc.science_score + sc.humanities_score) AS total_score
FROM student s
JOIN score sc ON s.id = sc.student_id', 'N', 0);
INSERT INTO CHART (ID, GMT_CREATE, GMT_MODIFIED, SCHEMA, DATA_SOURCE_ID, DATABASE_NAME, DDL, DELETED, USER_ID)
VALUES (2, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '{"chartType":"Pie","xAxis":"grade"}', 1, 'DEMO', 'SELECT s.name,
score.chinese_score,
score.math_score,
score.english_score,
score.science_score,
score.humanities_score,
(score.chinese_score + score.math_score + score.english_score + score.science_score + score.humanities_score) AS total_score,
CASE
WHEN (score.chinese_score + score.math_score + score.english_score + score.science_score + score.humanities_score) < 630 THEN "D"
WHEN (score.chinese_score + score.math_score + score.english_score + score.science_score + score.humanities_score) >= 630 AND (score.chinese_score + score.math_score + score.english_score + score.science_score + score.humanities_score) <= 735 THEN "C"
WHEN (score.chinese_score + score.math_score + score.english_score + score.science_score + score.humanities_score) > 840 THEN "A"
ELSE "B"
END AS grade
FROM score
JOIN student s ON score.student_id = s.id', 'N', 0);
INSERT INTO CHART (ID, GMT_CREATE, GMT_MODIFIED, SCHEMA, DATA_SOURCE_ID, DATABASE_NAME, DDL, DELETED, USER_ID)
VALUES (3, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '{"chartType":"Line","xAxis":"name","yAxis":"chinese_score"}', 1, 'DEMO', 'SELECT s.name, sc.chinese_score, sc.math_score, sc.english_score, sc.science_score, sc.humanities_score,
(sc.chinese_score + sc.math_score + sc.english_score + sc.science_score + sc.humanities_score) AS total_score
FROM student s
JOIN score sc ON s.id = sc.student_id', 'N', 0);
INSERT INTO DASHBOARD_CHART_RELATION (GMT_CREATE, GMT_MODIFIED, DASHBOARD_ID, CHART_ID)
VALUES (CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 1, 1);
INSERT INTO DASHBOARD_CHART_RELATION (GMT_CREATE, GMT_MODIFIED, DASHBOARD_ID, CHART_ID)
VALUES (CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 1, 2);
INSERT INTO DASHBOARD_CHART_RELATION (GMT_CREATE, GMT_MODIFIED, DASHBOARD_ID, CHART_ID)
VALUES (CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 1, 3);

View File

@ -1,13 +0,0 @@
CREATE TABLE IF NOT EXISTS `jdbc_driver` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`db_type` varchar(32) NOT NULL COMMENT 'db类型',
`jdbc_driver` varchar(512) DEFAULT NULL COMMENT 'jar包',
`jdbc_driver_class` varchar(512) DEFAULT NULL COMMENT 'driver class类',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='自定义驱动表'
;
create INDEX idx_db_type on jdbc_driver(db_type) ;
ALTER TABLE `data_source` ADD COLUMN `driver_config` varchar(1024) NULL COMMENT 'driver_config配置';

View File

@ -1,2 +0,0 @@
ALTER TABLE `operation_saved` ADD COLUMN `operation_type` varchar(1024) NULL COMMENT '操作类型';

View File

@ -1,133 +0,0 @@
CREATE TABLE IF NOT EXISTS `environment`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`create_user_id` bigint(20) unsigned NOT NULL COMMENT '创建人用户id',
`modified_user_id` bigint(20) unsigned NOT NULL COMMENT '修改人用户id',
`name` varchar(128) DEFAULT NOT NULL COMMENT '环境名称',
`short_name` varchar(128) DEFAULT NULL COMMENT '环境缩写',
`color` varchar(32) DEFAULT NULL COMMENT '颜色',
PRIMARY KEY (`id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='数据库连接环境'
;
INSERT INTO `environment`
(`id`, `create_user_id`, `modified_user_id`, `name`, `short_name`, `color`)
VALUES (1, 1, 1, 'Release Environment', 'RELEASE', 'RED');
INSERT INTO `environment`
(`id`, `create_user_id`, `modified_user_id`, `name`, `short_name`, `color`)
VALUES (2, 1, 1, 'Test Environment', 'TEST', 'GREEN');
ALTER TABLE `data_source`
ADD COLUMN `environment_id` bigint(20) unsigned NOT NULL DEFAULT 2 COMMENT '环境id';
ALTER TABLE `data_source`
modify COLUMN `user_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '用户id';
ALTER TABLE `data_source`
ADD COLUMN `kind` varchar(32) NOT NULL DEFAULT 'PRIVATE' COMMENT '连接类型';
update data_source
set user_id= 1;
ALTER TABLE `dbhub_user`
ADD COLUMN `role_code` varchar(32) DEFAULT NULL COMMENT '角色编码';
ALTER TABLE `dbhub_user`
ADD `status` varchar(32) NOT NULL DEFAULT 'VALID' COMMENT '用户状态';
ALTER TABLE `dbhub_user`
ADD `create_user_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '创建人用户id';
ALTER TABLE `dbhub_user`
ADD `modified_user_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '修改人用户id';
update dbhub_user
set role_code= 'DESKTOP',user_name='_desktop_default_user_name',password='_desktop_default_user_name',nick_name='Desktop User'
where id = 1;
INSERT INTO DBHUB_USER (USER_NAME, PASSWORD, NICK_NAME, EMAIL, ROLE_CODE) VALUES ('chat2db', 'chat2db', 'Administrator', null, 'ADMIN');
create UNIQUE INDEX uk_user_user_name on dbhub_user (user_name);
CREATE TABLE IF NOT EXISTS `team`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`create_user_id` bigint(20) unsigned NOT NULL COMMENT '创建人用户id',
`modified_user_id` bigint(20) unsigned NOT NULL COMMENT '修改人用户id',
`code` varchar(128) DEFAULT NOT NULL COMMENT '团队编码',
`name` varchar(512) DEFAULT NULL COMMENT '团队名称',
`status` varchar(32) NOT NULL DEFAULT 'VALID' COMMENT '团队状态',
`description` text DEFAULT NULL COMMENT '团队描述',
PRIMARY KEY (`id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='团队'
;
create UNIQUE INDEX uk_team_code on team (code);
CREATE TABLE IF NOT EXISTS `team_user`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`create_user_id` bigint(20) unsigned NOT NULL COMMENT '创建人用户id',
`modified_user_id` bigint(20) unsigned NOT NULL COMMENT '修改人用户id',
`team_id` bigint(20) unsigned NOT NULL COMMENT '团队id',
`user_id` bigint(20) unsigned NOT NULL COMMENT '用户id',
PRIMARY KEY (`id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='用户团队表'
;
create INDEX idx_team_user_team_id on team_user (`team_id`);
create INDEX idx_team_user_user_id on team_user (`user_id`);
create UNIQUE INDEX uk_team_user on team_user (`team_id`,`user_id`);
CREATE TABLE IF NOT EXISTS `data_source_access`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`create_user_id` bigint(20) unsigned NOT NULL COMMENT '创建人用户id',
`modified_user_id` bigint(20) unsigned NOT NULL COMMENT '修改人用户id',
`data_source_id` bigint(20) unsigned NOT NULL COMMENT '数据源id',
`access_object_type` varchar(32) NOT NULL COMMENT '授权类型',
`access_object_id` bigint(20) unsigned NOT NULL COMMENT '授权id,根据类型区分是用户还是团队',
PRIMARY KEY (`id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='数据源授权'
;
create INDEX idx_data_source_access_data_source_id on data_source_access (`data_source_id`);
create INDEX idx_data_source_access_access_object_id on data_source_access (`access_object_type`, `access_object_id`);
create UNIQUE INDEX uk_data_source_access on data_source_access (`data_source_id`,`access_object_type`, `access_object_id`);
ALTER TABLE `operation_saved`
modify COLUMN `user_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '用户id';
update operation_saved
set user_id= 1;
ALTER TABLE `operation_log`
modify COLUMN `user_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '用户id';
update operation_log
set user_id= 1;
ALTER TABLE `dashboard`
modify `user_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '用户id';
update dashboard
set user_id= 1;
ALTER TABLE `chart`
modify `user_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '用户id';
update chart
set user_id= 1;

View File

@ -1,38 +0,0 @@
CREATE TABLE IF NOT EXISTS `table_cache_version` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`data_source_id` bigint(20) unsigned NOT NULL COMMENT '数据源连接ID',
`database_name` varchar(256) DEFAULT NULL COMMENT 'db名称',
`schema_name` varchar(256) DEFAULT NULL COMMENT 'schema名称',
`key` varchar(256) DEFAULT NULL COMMENT '唯一索引',
`version` bigint(20) unsigned NOT NULL COMMENT '版本',
`table_count` bigint(20) unsigned NOT NULL COMMENT '表数量',
`status` varchar(256) DEFAULT NULL COMMENT '状态',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='table cache version'
;
create INDEX idx_table_cache_version_data_source_id on table_cache_version(`data_source_id`) ;
create UNIQUE INDEX uk_table_cache_version_key on table_cache_version(`key`) ;
CREATE TABLE IF NOT EXISTS `table_cache` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`data_source_id` bigint(20) unsigned NOT NULL COMMENT '数据源连接ID',
`database_name` varchar(256) DEFAULT NULL COMMENT 'db名称',
`schema_name` varchar(256) DEFAULT NULL COMMENT 'schema名称',
`table_name` varchar(256) DEFAULT NULL COMMENT 'table名称',
`key` varchar(256) DEFAULT NULL COMMENT '唯一索引',
`version` bigint(20) unsigned NOT NULL COMMENT '版本',
`columns` varchar(2048) DEFAULT NULL COMMENT '表字段',
`extend_info` varchar(2048) NULL COMMENT '自定义扩展字段json',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='table cache'
;
create INDEX idx_table_cache_data_source_id on table_cache(`data_source_id`) ;
create INDEX idx_table_cache_key_version on table_cache(`key`,`version`) ;
create INDEX idx_table_cache_key_table_name on table_cache(`key`,`table_name`) ;

View File

@ -1,8 +0,0 @@
ALTER TABLE `operation_log`
ADD COLUMN `status` varchar(20) DEFAULT 'success' COMMENT '状态';
ALTER TABLE `operation_log`
ADD COLUMN `operation_rows` bigint(20) unsigned COMMENT '操作行数';
ALTER TABLE `operation_log`
ADD COLUMN `use_time` bigint(20) unsigned COMMENT '使用时长';
ALTER TABLE `operation_log`
ADD COLUMN `extend_info` varchar(1024) COMMENT '扩展信息';

View File

@ -1,3 +0,0 @@
ALTER TABLE `operation_log`
ADD COLUMN `schema_name` varchar(256) COMMENT 'schema名称';
create INDEX idx_op_data_source_id on operation_log(data_source_id) ;

View File

@ -1,12 +0,0 @@
CREATE TABLE IF NOT EXISTS `table_vector_mapping` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`api_key` varchar(128) DEFAULT NULL COMMENT 'api key',
`data_source_id` bigint(20) unsigned DEFAULT NULL COMMENT '数据源连接ID',
`database` text DEFAULT NULL COMMENT '数据库名称',
`schema` text DEFAULT NULL COMMENT 'schema名称',
`status` varchar(4) DEFAULT NULL COMMENT '向量保存状态',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='milvus映射表保存记录'
;
create INDEX idx_api_key on table_vector_mapping(api_key) ;

View File

@ -1 +0,0 @@
ALTER TABLE table_vector_mapping ALTER COLUMN status VARCHAR(64);

View File

@ -1,3 +0,0 @@
ALTER TABLE `data_source` ADD COLUMN `service_name` varchar(128) NULL COMMENT '服务名';
ALTER TABLE `data_source` ADD COLUMN `service_type` varchar(128) NULL COMMENT '服务类型';

View File

@ -1,16 +0,0 @@
# ALTER TABLE `operation_saved`
# modify COLUMN `user_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '用户id';
#
# update operation_saved
# set user_id= 1;
#
# ALTER TABLE `dashboard`
# modify `user_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '用户id';
# update dashboard
# set user_id= 1;
#
#
# ALTER TABLE `chart`
# modify `user_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '用户id';
# update chart
# set user_id= 1;

View File

@ -1,5 +1,6 @@
package ai.chat2db.server.web.start.config.config;
import ai.chat2db.server.domain.repository.Dbutils;
import ai.chat2db.server.tools.common.model.ConfigJson;
import ai.chat2db.server.tools.common.util.ConfigUtils;
import lombok.extern.slf4j.Slf4j;
@ -28,5 +29,6 @@ public class AsyncContextRefreshedListener implements ApplicationListener<Contex
configJson.setLatestStartupSuccessVersion(currentVersion);
ConfigUtils.setConfig(configJson);
}
Dbutils.init();
}
}

View File

@ -7,6 +7,7 @@ import ai.chat2db.server.domain.api.service.TeamUserService;
import ai.chat2db.server.domain.api.service.UserService;
import ai.chat2db.server.domain.core.cache.CacheKey;
import ai.chat2db.server.domain.core.cache.MemoryCacheManage;
import ai.chat2db.server.domain.repository.Dbutils;
import ai.chat2db.server.tools.base.constant.SymbolConstant;
import ai.chat2db.server.tools.base.excption.BusinessException;
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
@ -72,6 +73,7 @@ public class Chat2dbWebMvcConfigurer implements WebMvcConfigurer {
@Override
public boolean preHandle(@NotNull HttpServletRequest request, @NotNull HttpServletResponse response,
@NotNull Object handler) {
Dbutils.setSession();
String userIdString = (String)StpUtil.getLoginIdDefaultNull();
Long userId;
// 未登录
@ -120,6 +122,7 @@ public class Chat2dbWebMvcConfigurer implements WebMvcConfigurer {
Exception ex) throws Exception {
// 移除登录信息
ContextUtils.removeContext();
Dbutils.removeSession();
}
})
.order(1)

View File

@ -1,15 +1,4 @@
spring:
datasource:
# 配置自带数据库的相对路径
url: jdbc:h2:~/.chat2db/db/chat2db_test;MODE=MYSQL
driver-class-name: org.h2.Driver
h2:
console:
enabled: true
path: /h2
settings:
trace: true
web-allow-others: true
# 端口号
server:
port: 10822

View File

@ -26,7 +26,7 @@ spring:
static-locations[0]: classpath:/static/
# 用于数据库表结构版本管理
flyway:
locations: classpath:db/migration
enabled: false
servlet:
multipart:
max-file-size: -1

View File

@ -1,70 +0,0 @@
CREATE TABLE IF NOT EXISTS `data_source` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL COMMENT '创建时间',
`gmt_modified` datetime NOT NULL COMMENT '修改时间',
`alias` varchar(128) DEFAULT NULL COMMENT '别名',
`url` varchar(1024) DEFAULT NULL COMMENT '连接地址',
`user_name` varchar(128) DEFAULT NULL COMMENT '用户名',
`password` varchar(256) DEFAULT NULL COMMENT '密码',
`type` varchar(32) DEFAULT NULL COMMENT '数据库类型',
`env_type` varchar(32) DEFAULT NULL COMMENT '环境类型',
`user_id` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '用户id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='数据源连接表'
;
CREATE TABLE IF NOT EXISTS `operation_log` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`data_source_id` bigint(20) unsigned NOT NULL COMMENT '数据源连接ID',
`database_name` varchar(128) DEFAULT NULL COMMENT 'db名称',
`type` varchar(32) NOT NULL COMMENT '数据库类型',
`ddl` text DEFAULT NULL COMMENT 'ddl内容',
`user_id` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '用户id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='我的执行记录表'
;
CREATE TABLE IF NOT EXISTS `operation_saved` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`data_source_id` bigint(20) unsigned NOT NULL COMMENT '数据源连接ID',
`database_name` varchar(128) DEFAULT NULL COMMENT 'db名称',
`name` varchar(128) DEFAULT NULL COMMENT '保存名称',
`type` varchar(32) NOT NULL COMMENT '数据库类型',
`status` varchar(32) NOT NULL COMMENT 'ddl语句状态:DRAFT/RELEASE',
`ddl` text DEFAULT NULL COMMENT 'ddl内容',
`tab_opened` text DEFAULT NULL COMMENT '是否在tab中被打开,y表示打开,n表示未打开',
`user_id` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '用户id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='我的保存表'
;
CREATE TABLE IF NOT EXISTS `dbhub_user` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`user_name` varchar(32) NOT NULL COMMENT '用户名',
`password` varchar(256) DEFAULT NULL COMMENT '密码',
`nick_name` varchar(256) DEFAULT NULL COMMENT '昵称',
`email` varchar(256) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数据源连接表'
;
CREATE TABLE IF NOT EXISTS `system_config` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`code` varchar(32) NOT NULL COMMENT '配置项编码',
`content` varchar(256) DEFAULT NULL COMMENT '配置项内容',
`summary` varchar(256) DEFAULT NULL COMMENT '配置项说明',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='配置中心表'
;
create UNIQUE INDEX uk_code on system_config(code) ;
INSERT INTO `dbhub_user` (`user_name`,`password`,`nick_name`) VALUES ('dbhub','$2a$10$yElafjDHPoPHSaCo6cjJGuWmtXWNVz/cOOOtDg99eNfvUfalzfane','管理员');

View File

@ -1 +0,0 @@
ALTER TABLE `operation_saved` ADD COLUMN `db_schema_name` varchar(128) NULL COMMENT 'schema名称';

View File

@ -1,9 +0,0 @@
ALTER TABLE `data_source` ADD COLUMN `host` varchar(128) NULL COMMENT 'host地址';
ALTER TABLE `data_source` ADD COLUMN `port` varchar(128) NULL COMMENT '端口';
ALTER TABLE `data_source` ADD COLUMN `ssh` varchar(1024) NULL COMMENT 'ssh配置信息json';
ALTER TABLE `data_source` ADD COLUMN `ssl` varchar(1024) NULL COMMENT 'ssl配置信息json';
ALTER TABLE `data_source` ADD COLUMN `sid` varchar(32) NULL COMMENT 'sid';
ALTER TABLE `data_source` ADD COLUMN `driver` varchar(128) NULL COMMENT '驱动信息';
ALTER TABLE `data_source` ADD COLUMN `jdbc` varchar(128) NULL COMMENT 'jdbc版本';
ALTER TABLE `data_source` ADD COLUMN `extend_info` varchar(4096) NULL COMMENT '自定义扩展字段json';
create INDEX idx_user_id on data_source(user_id) ;

View File

@ -1,39 +0,0 @@
CREATE TABLE IF NOT EXISTS `dashboard` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`name` varchar(128) DEFAULT NULL COMMENT '报表名称',
`description` varchar(128) DEFAULT NULL COMMENT '报表描述',
`schema` text DEFAULT NULL COMMENT '报表布局信息',
`deleted` text DEFAULT NULL COMMENT '是否被删除,y表示删除,n表示未删除',
`user_id` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '用户id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='自定义报表表'
;
CREATE TABLE IF NOT EXISTS `chart` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`name` varchar(128) DEFAULT NULL COMMENT '图表名称',
`description` varchar(128) DEFAULT NULL COMMENT '图表描述',
`schema` text DEFAULT NULL COMMENT '图表信息',
`data_source_id` bigint(20) unsigned DEFAULT NULL COMMENT '数据源连接ID',
`type` varchar(32) DEFAULT NULL COMMENT '数据库类型',
`database_name` varchar(128) DEFAULT NULL COMMENT 'db名称',
`ddl` text DEFAULT NULL COMMENT 'ddl内容',
`deleted` text DEFAULT NULL COMMENT '是否被删除,y表示删除,n表示未删除',
`user_id` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '用户id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='自定义报表表'
;
CREATE TABLE IF NOT EXISTS `dashboard_chart_relation` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`dashboard_id` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '报表id',
`chart_id` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '图表id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='自定义报表表'
;

View File

@ -1,14 +0,0 @@
CREATE TABLE IF NOT EXISTS `pin_table` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`data_source_id` bigint(20) unsigned NOT NULL COMMENT '数据源连接ID',
`database_name` varchar(128) DEFAULT NULL COMMENT 'db名称',
`schema_name` varchar(128) DEFAULT NULL COMMENT 'schema名称',
`table_name` varchar(128) DEFAULT NULL COMMENT 'table_name',
`deleted` text DEFAULT NULL COMMENT '是否被删除,y表示删除,n表示未删除',
`user_id` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '用户id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='PIN TABLES'
;
create INDEX idx_user_id_data_source_id on pin_table(user_id,data_source_id) ;

View File

@ -1,41 +0,0 @@
INSERT INTO DATA_SOURCE (GMT_CREATE, GMT_MODIFIED, ALIAS, URL, USER_NAME, PASSWORD, TYPE, USER_ID, HOST, PORT, SSH,JDBC)
VALUES (CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'DEMO@db.sqlgpt.cn', 'jdbc:mysql://db.sqlgpt.cn:3306/DEMO', 'demo', 'kok39AYoOSM=', 'MYSQL', 0, 'db.sqlgpt.cn', '3306', '{"use":false}', '8.0');
INSERT INTO DASHBOARD (ID, GMT_CREATE, GMT_MODIFIED, NAME, DESCRIPTION, SCHEMA, DELETED, USER_ID)
VALUES (1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '学生成绩分析', '学生成绩分析', '[[1],[2],[3]]', 'N', 0);
INSERT INTO CHART (ID, GMT_CREATE, GMT_MODIFIED, SCHEMA, DATA_SOURCE_ID, DATABASE_NAME, DDL, DELETED, USER_ID)
VALUES (1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '{"chartType":"Column","xAxis":"name","yAxis":"total_score"}', 1, 'DEMO', 'SELECT s.name, sc.chinese_score, sc.math_score, sc.english_score, sc.science_score, sc.humanities_score,
(sc.chinese_score + sc.math_score + sc.english_score + sc.science_score + sc.humanities_score) AS total_score
FROM student s
JOIN score sc ON s.id = sc.student_id', 'N', 0);
INSERT INTO CHART (ID, GMT_CREATE, GMT_MODIFIED, SCHEMA, DATA_SOURCE_ID, DATABASE_NAME, DDL, DELETED, USER_ID)
VALUES (2, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '{"chartType":"Pie","xAxis":"grade"}', 1, 'DEMO', 'SELECT s.name,
score.chinese_score,
score.math_score,
score.english_score,
score.science_score,
score.humanities_score,
(score.chinese_score + score.math_score + score.english_score + score.science_score + score.humanities_score) AS total_score,
CASE
WHEN (score.chinese_score + score.math_score + score.english_score + score.science_score + score.humanities_score) < 630 THEN "D"
WHEN (score.chinese_score + score.math_score + score.english_score + score.science_score + score.humanities_score) >= 630 AND (score.chinese_score + score.math_score + score.english_score + score.science_score + score.humanities_score) <= 735 THEN "C"
WHEN (score.chinese_score + score.math_score + score.english_score + score.science_score + score.humanities_score) > 840 THEN "A"
ELSE "B"
END AS grade
FROM score
JOIN student s ON score.student_id = s.id', 'N', 0);
INSERT INTO CHART (ID, GMT_CREATE, GMT_MODIFIED, SCHEMA, DATA_SOURCE_ID, DATABASE_NAME, DDL, DELETED, USER_ID)
VALUES (3, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '{"chartType":"Line","xAxis":"name","yAxis":"chinese_score"}', 1, 'DEMO', 'SELECT s.name, sc.chinese_score, sc.math_score, sc.english_score, sc.science_score, sc.humanities_score,
(sc.chinese_score + sc.math_score + sc.english_score + sc.science_score + sc.humanities_score) AS total_score
FROM student s
JOIN score sc ON s.id = sc.student_id', 'N', 0);
INSERT INTO DASHBOARD_CHART_RELATION (GMT_CREATE, GMT_MODIFIED, DASHBOARD_ID, CHART_ID)
VALUES (CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 1, 1);
INSERT INTO DASHBOARD_CHART_RELATION (GMT_CREATE, GMT_MODIFIED, DASHBOARD_ID, CHART_ID)
VALUES (CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 1, 2);
INSERT INTO DASHBOARD_CHART_RELATION (GMT_CREATE, GMT_MODIFIED, DASHBOARD_ID, CHART_ID)
VALUES (CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 1, 3);

View File

@ -1,13 +0,0 @@
CREATE TABLE IF NOT EXISTS `jdbc_driver` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`db_type` varchar(32) NOT NULL COMMENT 'db类型',
`jdbc_driver` varchar(512) DEFAULT NULL COMMENT 'jar包',
`jdbc_driver_class` varchar(512) DEFAULT NULL COMMENT 'driver class类',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='自定义驱动表'
;
create INDEX idx_db_type on jdbc_driver(db_type) ;
ALTER TABLE `data_source` ADD COLUMN `driver_config` varchar(1024) NULL COMMENT 'driver_config配置';

View File

@ -1,2 +0,0 @@
ALTER TABLE `operation_saved` ADD COLUMN `operation_type` varchar(1024) NULL COMMENT '操作类型';

View File

@ -1,133 +0,0 @@
CREATE TABLE IF NOT EXISTS `environment`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`create_user_id` bigint(20) unsigned NOT NULL COMMENT '创建人用户id',
`modified_user_id` bigint(20) unsigned NOT NULL COMMENT '修改人用户id',
`name` varchar(128) DEFAULT NOT NULL COMMENT '环境名称',
`short_name` varchar(128) DEFAULT NULL COMMENT '环境缩写',
`color` varchar(32) DEFAULT NULL COMMENT '颜色',
PRIMARY KEY (`id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='数据库连接环境'
;
INSERT INTO `environment`
(`id`, `create_user_id`, `modified_user_id`, `name`, `short_name`, `color`)
VALUES (1, 1, 1, 'Release Environment', 'RELEASE', 'RED');
INSERT INTO `environment`
(`id`, `create_user_id`, `modified_user_id`, `name`, `short_name`, `color`)
VALUES (2, 1, 1, 'Test Environment', 'TEST', 'GREEN');
ALTER TABLE `data_source`
ADD COLUMN `environment_id` bigint(20) unsigned NOT NULL DEFAULT 2 COMMENT '环境id';
ALTER TABLE `data_source`
modify COLUMN `user_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '用户id';
ALTER TABLE `data_source`
ADD COLUMN `kind` varchar(32) NOT NULL DEFAULT 'PRIVATE' COMMENT '连接类型';
update data_source
set user_id= 1;
ALTER TABLE `dbhub_user`
ADD COLUMN `role_code` varchar(32) DEFAULT NULL COMMENT '角色编码';
ALTER TABLE `dbhub_user`
ADD `status` varchar(32) NOT NULL DEFAULT 'VALID' COMMENT '用户状态';
ALTER TABLE `dbhub_user`
ADD `create_user_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '创建人用户id';
ALTER TABLE `dbhub_user`
ADD `modified_user_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '修改人用户id';
update dbhub_user
set role_code= 'DESKTOP',user_name='_desktop_default_user_name',password='_desktop_default_user_name',nick_name='Desktop User'
where id = 1;
INSERT INTO DBHUB_USER (USER_NAME, PASSWORD, NICK_NAME, EMAIL, ROLE_CODE) VALUES ('chat2db', 'chat2db', 'Administrator', null, 'ADMIN');
create UNIQUE INDEX uk_user_user_name on dbhub_user (user_name);
CREATE TABLE IF NOT EXISTS `team`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`create_user_id` bigint(20) unsigned NOT NULL COMMENT '创建人用户id',
`modified_user_id` bigint(20) unsigned NOT NULL COMMENT '修改人用户id',
`code` varchar(128) DEFAULT NOT NULL COMMENT '团队编码',
`name` varchar(512) DEFAULT NULL COMMENT '团队名称',
`status` varchar(32) NOT NULL DEFAULT 'VALID' COMMENT '团队状态',
`description` text DEFAULT NULL COMMENT '团队描述',
PRIMARY KEY (`id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='团队'
;
create UNIQUE INDEX uk_team_code on team (code);
CREATE TABLE IF NOT EXISTS `team_user`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`create_user_id` bigint(20) unsigned NOT NULL COMMENT '创建人用户id',
`modified_user_id` bigint(20) unsigned NOT NULL COMMENT '修改人用户id',
`team_id` bigint(20) unsigned NOT NULL COMMENT '团队id',
`user_id` bigint(20) unsigned NOT NULL COMMENT '用户id',
PRIMARY KEY (`id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='用户团队表'
;
create INDEX idx_team_user_team_id on team_user (`team_id`);
create INDEX idx_team_user_user_id on team_user (`user_id`);
create UNIQUE INDEX uk_team_user on team_user (`team_id`,`user_id`);
CREATE TABLE IF NOT EXISTS `data_source_access`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`create_user_id` bigint(20) unsigned NOT NULL COMMENT '创建人用户id',
`modified_user_id` bigint(20) unsigned NOT NULL COMMENT '修改人用户id',
`data_source_id` bigint(20) unsigned NOT NULL COMMENT '数据源id',
`access_object_type` varchar(32) NOT NULL COMMENT '授权类型',
`access_object_id` bigint(20) unsigned NOT NULL COMMENT '授权id,根据类型区分是用户还是团队',
PRIMARY KEY (`id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='数据源授权'
;
create INDEX idx_data_source_access_data_source_id on data_source_access (`data_source_id`);
create INDEX idx_data_source_access_access_object_id on data_source_access (`access_object_type`, `access_object_id`);
create UNIQUE INDEX uk_data_source_access on data_source_access (`data_source_id`,`access_object_type`, `access_object_id`);
ALTER TABLE `operation_saved`
modify COLUMN `user_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '用户id';
update operation_saved
set user_id= 1;
ALTER TABLE `operation_log`
modify COLUMN `user_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '用户id';
update operation_log
set user_id= 1;
ALTER TABLE `dashboard`
modify `user_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '用户id';
update dashboard
set user_id= 1;
ALTER TABLE `chart`
modify `user_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '用户id';
update chart
set user_id= 1;

View File

@ -1,38 +0,0 @@
CREATE TABLE IF NOT EXISTS `table_cache_version` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`data_source_id` bigint(20) unsigned NOT NULL COMMENT '数据源连接ID',
`database_name` varchar(256) DEFAULT NULL COMMENT 'db名称',
`schema_name` varchar(256) DEFAULT NULL COMMENT 'schema名称',
`key` varchar(256) DEFAULT NULL COMMENT '唯一索引',
`version` bigint(20) unsigned NOT NULL COMMENT '版本',
`table_count` bigint(20) unsigned NOT NULL COMMENT '表数量',
`status` varchar(256) DEFAULT NULL COMMENT '状态',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='table cache version'
;
create INDEX idx_table_cache_version_data_source_id on table_cache_version(`data_source_id`) ;
create UNIQUE INDEX uk_table_cache_version_key on table_cache_version(`key`) ;
CREATE TABLE IF NOT EXISTS `table_cache` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`data_source_id` bigint(20) unsigned NOT NULL COMMENT '数据源连接ID',
`database_name` varchar(256) DEFAULT NULL COMMENT 'db名称',
`schema_name` varchar(256) DEFAULT NULL COMMENT 'schema名称',
`table_name` varchar(256) DEFAULT NULL COMMENT 'table名称',
`key` varchar(256) DEFAULT NULL COMMENT '唯一索引',
`version` bigint(20) unsigned NOT NULL COMMENT '版本',
`columns` varchar(2048) DEFAULT NULL COMMENT '表字段',
`extend_info` varchar(2048) NULL COMMENT '自定义扩展字段json',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='table cache'
;
create INDEX idx_table_cache_data_source_id on table_cache(`data_source_id`) ;
create INDEX idx_table_cache_key_version on table_cache(`key`,`version`) ;
create INDEX idx_table_cache_key_table_name on table_cache(`key`,`table_name`) ;

View File

@ -1,8 +0,0 @@
ALTER TABLE `operation_log`
ADD COLUMN `status` varchar(20) DEFAULT 'success' COMMENT '状态';
ALTER TABLE `operation_log`
ADD COLUMN `operation_rows` bigint(20) unsigned COMMENT '操作行数';
ALTER TABLE `operation_log`
ADD COLUMN `use_time` bigint(20) unsigned COMMENT '使用时长';
ALTER TABLE `operation_log`
ADD COLUMN `extend_info` varchar(1024) COMMENT '扩展信息';

View File

@ -1,3 +0,0 @@
ALTER TABLE `operation_log`
ADD COLUMN `schema_name` varchar(256) COMMENT 'schema名称';
create INDEX idx_op_data_source_id on operation_log(data_source_id) ;

View File

@ -1,12 +0,0 @@
CREATE TABLE IF NOT EXISTS `table_vector_mapping` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`api_key` varchar(128) DEFAULT NULL COMMENT 'api key',
`data_source_id` bigint(20) unsigned DEFAULT NULL COMMENT '数据源连接ID',
`database` text DEFAULT NULL COMMENT '数据库名称',
`schema` text DEFAULT NULL COMMENT 'schema名称',
`status` varchar(4) DEFAULT NULL COMMENT '向量保存状态',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='milvus映射表保存记录'
;
create INDEX idx_api_key on table_vector_mapping(api_key) ;

View File

@ -1 +0,0 @@
ALTER TABLE table_vector_mapping ALTER COLUMN status VARCHAR(64);

View File

@ -1,3 +0,0 @@
ALTER TABLE `data_source` ADD COLUMN `service_name` varchar(128) NULL COMMENT '服务名';
ALTER TABLE `data_source` ADD COLUMN `service_type` varchar(128) NULL COMMENT '服务类型';

View File

@ -1,16 +0,0 @@
# ALTER TABLE `operation_saved`
# modify COLUMN `user_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '用户id';
#
# update operation_saved
# set user_id= 1;
#
# ALTER TABLE `dashboard`
# modify `user_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '用户id';
# update dashboard
# set user_id= 1;
#
#
# ALTER TABLE `chart`
# modify `user_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '用户id';
# update chart
# set user_id= 1;

View File

@ -19,7 +19,6 @@ import ai.chat2db.server.web.api.controller.ai.chat2db.client.Chat2dbAIClient;
import ai.chat2db.server.web.api.controller.system.util.SystemUtils;
import ai.chat2db.server.web.api.controller.system.vo.AppVersionVO;
import ai.chat2db.server.web.api.controller.system.vo.SystemVO;
import ai.chat2db.server.web.api.util.ApplicationContextUtil;
import ai.chat2db.spi.ssh.SSHManager;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@ -64,6 +63,11 @@ public class SystemController {
@GetMapping("/get_latest_version")
public DataResult<AppVersionVO> getLatestVersion(String currentVersion) {
ModeEnum mode = EasyEnumUtils.getEnum(ModeEnum.class, System.getProperty("chat2db.mode"));
if (mode != ModeEnum.DESKTOP) {
// In this mode, no user login is required, so only local access is available
return DataResult.of(null);
}
String user = "";
DataResult<Config> dataResult = configService.find(Chat2dbAIClient.CHAT2DB_OPENAI_KEY);
if (dataResult.getData() != null) {
@ -79,12 +83,8 @@ public class SystemController {
if (updateType.getData() != null) {
appVersionVO.setType(updateType.getData().getContent());
}
ModeEnum mode = EasyEnumUtils.getEnum(ModeEnum.class, System.getProperty("chat2db.mode"));
if (mode == ModeEnum.DESKTOP) {
// In this mode, no user login is required, so only local access is available
appVersionVO.setDesktop(true);
}
// In this mode, no user login is required, so only local access is available
appVersionVO.setDesktop(true);
return DataResult.of(appVersionVO);
}