feat: 重构数据中枢工作台与接入管理
- 新增统一的数据源、目录、纳管表与 Excel 处理后端能力 - 重建管理端数据中枢工作台并替换旧表管理页面 - 补充数据中枢迁移脚本、连接器底座与说明字段支持
This commit is contained in:
@@ -0,0 +1,202 @@
|
||||
CREATE TABLE `tb_datacenter_source`
|
||||
(
|
||||
`id` bigint UNSIGNED NOT NULL COMMENT '主键',
|
||||
`dept_id` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '部门ID',
|
||||
`tenant_id` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '租户ID',
|
||||
`source_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '数据源名称',
|
||||
`source_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '数据源编码',
|
||||
`source_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '数据源类型',
|
||||
`access_mode` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'READ_ONLY' COMMENT '访问模式',
|
||||
`builtin_flag` int NOT NULL DEFAULT 0 COMMENT '是否内置',
|
||||
`driver_class_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '驱动类名',
|
||||
`jdbc_url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'JDBC URL',
|
||||
`host` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '主机',
|
||||
`port` int NULL DEFAULT NULL COMMENT '端口',
|
||||
`database_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '数据库名',
|
||||
`schema_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'Schema名',
|
||||
`username` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用户名',
|
||||
`credential_cipher` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '凭据密文',
|
||||
`config_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '连接配置',
|
||||
`capabilities_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '能力声明',
|
||||
`last_test_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '最近测试状态',
|
||||
`last_test_message` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '最近测试信息',
|
||||
`last_tested_at` datetime NULL DEFAULT NULL COMMENT '最近测试时间',
|
||||
`status` int NOT NULL DEFAULT 0 COMMENT '状态',
|
||||
`options` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '扩展项',
|
||||
`created` datetime NOT NULL COMMENT '创建时间',
|
||||
`created_by` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '创建人',
|
||||
`modified` datetime NOT NULL COMMENT '修改时间',
|
||||
`modified_by` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '修改人',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_datacenter_source_tenant_type` (`tenant_id`, `source_type`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '数据中心数据源' ROW_FORMAT = DYNAMIC;
|
||||
|
||||
CREATE TABLE `tb_datacenter_catalog`
|
||||
(
|
||||
`id` bigint UNSIGNED NOT NULL COMMENT '主键',
|
||||
`dept_id` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '部门ID',
|
||||
`tenant_id` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '租户ID',
|
||||
`source_id` bigint UNSIGNED NOT NULL COMMENT '数据源ID',
|
||||
`catalog_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '目录名',
|
||||
`catalog_desc` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '目录描述',
|
||||
`catalog_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'DATABASE' COMMENT '目录类型',
|
||||
`status` int NOT NULL DEFAULT 0 COMMENT '状态',
|
||||
`options` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '扩展项',
|
||||
`created` datetime NOT NULL COMMENT '创建时间',
|
||||
`created_by` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '创建人',
|
||||
`modified` datetime NOT NULL COMMENT '修改时间',
|
||||
`modified_by` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '修改人',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_datacenter_catalog_source` (`source_id`, `catalog_name`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '数据中心逻辑库/命名空间' ROW_FORMAT = DYNAMIC;
|
||||
|
||||
ALTER TABLE `tb_datacenter_table`
|
||||
ADD COLUMN `source_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT '数据源ID' AFTER `tenant_id`,
|
||||
ADD COLUMN `catalog_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT '目录ID' AFTER `source_id`,
|
||||
ADD COLUMN `table_kind` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'LOCAL_DYNAMIC' COMMENT '表类型' AFTER `actual_table`,
|
||||
ADD COLUMN `access_mode` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'READ_WRITE' COMMENT '访问模式' AFTER `table_kind`,
|
||||
ADD COLUMN `materialized_table` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '物化表名' AFTER `access_mode`,
|
||||
ADD COLUMN `versioning_enabled` int NOT NULL DEFAULT 0 COMMENT '是否开启版本' AFTER `materialized_table`,
|
||||
ADD COLUMN `capabilities_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '能力声明' AFTER `options`;
|
||||
|
||||
ALTER TABLE `tb_datacenter_table_field`
|
||||
ADD COLUMN `source_column_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '源字段名' AFTER `field_name`,
|
||||
ADD COLUMN `jdbc_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'JDBC类型' AFTER `field_type`,
|
||||
ADD COLUMN `precision` int NULL DEFAULT NULL COMMENT '精度' AFTER `jdbc_type`,
|
||||
ADD COLUMN `scale` int NULL DEFAULT NULL COMMENT '小数位' AFTER `precision`,
|
||||
ADD COLUMN `queryable` int NOT NULL DEFAULT 1 COMMENT '可查询' AFTER `required`,
|
||||
ADD COLUMN `sortable` int NOT NULL DEFAULT 1 COMMENT '可排序' AFTER `queryable`,
|
||||
ADD COLUMN `writable` int NOT NULL DEFAULT 1 COMMENT '可写入' AFTER `sortable`,
|
||||
ADD COLUMN `indexed` int NOT NULL DEFAULT 0 COMMENT '是否索引' AFTER `writable`;
|
||||
|
||||
CREATE TABLE `tb_datacenter_dataset_version`
|
||||
(
|
||||
`id` bigint UNSIGNED NOT NULL COMMENT '主键',
|
||||
`dept_id` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '部门ID',
|
||||
`tenant_id` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '租户ID',
|
||||
`table_id` bigint UNSIGNED NOT NULL COMMENT '表ID',
|
||||
`version_no` int NOT NULL DEFAULT 1 COMMENT '版本号',
|
||||
`version_label` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '版本标签',
|
||||
`materialized_table` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '物化表名',
|
||||
`snapshot_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '版本快照',
|
||||
`status` int NOT NULL DEFAULT 0 COMMENT '状态',
|
||||
`created` datetime NOT NULL COMMENT '创建时间',
|
||||
`created_by` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '创建人',
|
||||
`modified` datetime NOT NULL COMMENT '修改时间',
|
||||
`modified_by` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '修改人',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_dataset_version_table` (`table_id`, `version_no`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '数据集版本' ROW_FORMAT = DYNAMIC;
|
||||
|
||||
CREATE TABLE `tb_datacenter_import_job`
|
||||
(
|
||||
`id` bigint UNSIGNED NOT NULL COMMENT '主键',
|
||||
`dept_id` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '部门ID',
|
||||
`tenant_id` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '租户ID',
|
||||
`source_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT '数据源ID',
|
||||
`catalog_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT '目录ID',
|
||||
`table_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT '表ID',
|
||||
`job_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '任务类型',
|
||||
`file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '文件名',
|
||||
`storage_path` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '文件存储路径',
|
||||
`status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '任务状态',
|
||||
`total_rows` bigint NULL DEFAULT NULL COMMENT '总行数',
|
||||
`success_rows` bigint NULL DEFAULT NULL COMMENT '成功行数',
|
||||
`error_rows` bigint NULL DEFAULT NULL COMMENT '失败行数',
|
||||
`error_summary` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '错误摘要',
|
||||
`payload_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '任务载荷',
|
||||
`started_at` datetime NULL DEFAULT NULL COMMENT '开始时间',
|
||||
`finished_at` datetime NULL DEFAULT NULL COMMENT '结束时间',
|
||||
`created` datetime NOT NULL COMMENT '创建时间',
|
||||
`created_by` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '创建人',
|
||||
`modified` datetime NOT NULL COMMENT '修改时间',
|
||||
`modified_by` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '修改人',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_import_job_source` (`source_id`, `status`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '数据中心导入任务' ROW_FORMAT = DYNAMIC;
|
||||
|
||||
CREATE TABLE `tb_datacenter_derived_table`
|
||||
(
|
||||
`id` bigint UNSIGNED NOT NULL COMMENT '主键',
|
||||
`dept_id` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '部门ID',
|
||||
`tenant_id` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '租户ID',
|
||||
`source_table_id` bigint UNSIGNED NOT NULL COMMENT '源表ID',
|
||||
`derived_table_id` bigint UNSIGNED NOT NULL COMMENT '派生表ID',
|
||||
`derive_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '派生类型',
|
||||
`derive_config_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '派生配置',
|
||||
`status` int NOT NULL DEFAULT 0 COMMENT '状态',
|
||||
`created` datetime NOT NULL COMMENT '创建时间',
|
||||
`created_by` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '创建人',
|
||||
`modified` datetime NOT NULL COMMENT '修改时间',
|
||||
`modified_by` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '修改人',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_derived_table_source` (`source_table_id`, `derived_table_id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '数据中心派生表关系' ROW_FORMAT = DYNAMIC;
|
||||
|
||||
INSERT INTO `tb_datacenter_source` (`id`, `dept_id`, `tenant_id`, `source_name`, `source_code`, `source_type`, `access_mode`, `builtin_flag`, `status`, `config_json`, `capabilities_json`, `created`, `created_by`, `modified`, `modified_by`)
|
||||
SELECT DISTINCT
|
||||
9000000000000000000 + `tenant_id`,
|
||||
COALESCE(MIN(`dept_id`), 0),
|
||||
`tenant_id`,
|
||||
'本地动态表',
|
||||
CONCAT('LOCAL_DYNAMIC_', `tenant_id`),
|
||||
'LOCAL_DYNAMIC',
|
||||
'READ_WRITE',
|
||||
1,
|
||||
0,
|
||||
JSON_OBJECT('builtin', true),
|
||||
JSON_OBJECT('capabilities', JSON_ARRAY('TEST_CONNECTION', 'BROWSE_METADATA', 'READ_QUERY', 'WRITE_MUTATION', 'MATERIALIZE')),
|
||||
NOW(),
|
||||
0,
|
||||
NOW(),
|
||||
0
|
||||
FROM `tb_datacenter_table`
|
||||
GROUP BY `tenant_id`;
|
||||
|
||||
INSERT INTO `tb_datacenter_catalog` (`id`, `dept_id`, `tenant_id`, `source_id`, `catalog_name`, `catalog_desc`, `catalog_type`, `status`, `created`, `created_by`, `modified`, `modified_by`)
|
||||
SELECT DISTINCT
|
||||
9000000000001000000 + `tenant_id`,
|
||||
COALESCE(MIN(`dept_id`), 0),
|
||||
`tenant_id`,
|
||||
9000000000000000000 + `tenant_id`,
|
||||
'local_dynamic',
|
||||
'本地动态表目录',
|
||||
'DATABASE',
|
||||
0,
|
||||
NOW(),
|
||||
0,
|
||||
NOW(),
|
||||
0
|
||||
FROM `tb_datacenter_table`
|
||||
GROUP BY `tenant_id`;
|
||||
|
||||
INSERT INTO `tb_datacenter_source` (`id`, `dept_id`, `tenant_id`, `source_name`, `source_code`, `source_type`, `access_mode`, `builtin_flag`, `status`, `config_json`, `capabilities_json`, `created`, `created_by`, `modified`, `modified_by`)
|
||||
SELECT 9000000000000000000, 0, 0, '本地动态表', 'LOCAL_DYNAMIC_0', 'LOCAL_DYNAMIC', 'READ_WRITE', 1, 0,
|
||||
JSON_OBJECT('builtin', true),
|
||||
JSON_OBJECT('capabilities', JSON_ARRAY('TEST_CONNECTION', 'BROWSE_METADATA', 'READ_QUERY', 'WRITE_MUTATION', 'MATERIALIZE')),
|
||||
NOW(), 0, NOW(), 0
|
||||
FROM dual
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `tb_datacenter_source` WHERE `id` = 9000000000000000000);
|
||||
|
||||
INSERT INTO `tb_datacenter_catalog` (`id`, `dept_id`, `tenant_id`, `source_id`, `catalog_name`, `catalog_desc`, `catalog_type`, `status`, `created`, `created_by`, `modified`, `modified_by`)
|
||||
SELECT 9000000000001000000, 0, 0, 9000000000000000000, 'local_dynamic', '本地动态表目录', 'DATABASE', 0, NOW(), 0, NOW(), 0
|
||||
FROM dual
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `tb_datacenter_catalog` WHERE `id` = 9000000000001000000);
|
||||
|
||||
UPDATE `tb_datacenter_table`
|
||||
SET `source_id` = 9000000000000000000 + `tenant_id`,
|
||||
`catalog_id` = 9000000000001000000 + `tenant_id`,
|
||||
`table_kind` = 'LOCAL_DYNAMIC',
|
||||
`access_mode` = 'READ_WRITE',
|
||||
`materialized_table` = `actual_table`,
|
||||
`versioning_enabled` = 0,
|
||||
`capabilities_json` = JSON_OBJECT('capabilities', JSON_ARRAY('READ_QUERY', 'WRITE_MUTATION'))
|
||||
WHERE `source_id` IS NULL;
|
||||
|
||||
UPDATE `tb_datacenter_table_field`
|
||||
SET `source_column_name` = `field_name`,
|
||||
`queryable` = 1,
|
||||
`sortable` = 1,
|
||||
`writable` = 1,
|
||||
`indexed` = 0
|
||||
WHERE `source_column_name` IS NULL;
|
||||
@@ -0,0 +1,86 @@
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
UPDATE `tb_sys_menu`
|
||||
SET
|
||||
`menu_url` = '/datacenter',
|
||||
`component` = '',
|
||||
`remark` = '数据中心统一数据接入平台'
|
||||
WHERE `id` = 300817858217091072;
|
||||
|
||||
INSERT INTO `tb_sys_menu` (
|
||||
`id`, `parent_id`, `menu_type`, `menu_title`, `menu_url`, `component`,
|
||||
`menu_icon`, `is_show`, `permission_tag`, `sort_no`, `status`,
|
||||
`created`, `created_by`, `modified`, `modified_by`, `remark`
|
||||
)
|
||||
SELECT
|
||||
366300000000000001, 300817858217091072, 0, 'menus.ai.datacenterDataset',
|
||||
'/datacenter/dataset', '/datacenter/DatacenterDatasetManage',
|
||||
'svg:data-center', 1, '', 10, 0,
|
||||
NOW(), 1, NOW(), 1, '数据中心-数据集管理'
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `tb_sys_menu` WHERE `id` = 366300000000000001
|
||||
);
|
||||
|
||||
INSERT INTO `tb_sys_menu` (
|
||||
`id`, `parent_id`, `menu_type`, `menu_title`, `menu_url`, `component`,
|
||||
`menu_icon`, `is_show`, `permission_tag`, `sort_no`, `status`,
|
||||
`created`, `created_by`, `modified`, `modified_by`, `remark`
|
||||
)
|
||||
SELECT
|
||||
366300000000000002, 300817858217091072, 0, 'menus.ai.datacenterSource',
|
||||
'/datacenter/source', '/datacenter/DatacenterSourceAccess',
|
||||
'svg:data-center', 1, '', 20, 0,
|
||||
NOW(), 1, NOW(), 1, '数据中心-数据源接入'
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `tb_sys_menu` WHERE `id` = 366300000000000002
|
||||
);
|
||||
|
||||
INSERT INTO `tb_sys_menu` (
|
||||
`id`, `parent_id`, `menu_type`, `menu_title`, `menu_url`, `component`,
|
||||
`menu_icon`, `is_show`, `permission_tag`, `sort_no`, `status`,
|
||||
`created`, `created_by`, `modified`, `modified_by`, `remark`
|
||||
)
|
||||
SELECT
|
||||
366300000000000003, 366300000000000002, 1, '查询',
|
||||
'', '', '', 0, '/api/v1/datacenterSource/query', 1, 0,
|
||||
NOW(), 1, NOW(), 1, '数据源接入-查询'
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `tb_sys_menu` WHERE `id` = 366300000000000003
|
||||
);
|
||||
|
||||
INSERT INTO `tb_sys_menu` (
|
||||
`id`, `parent_id`, `menu_type`, `menu_title`, `menu_url`, `component`,
|
||||
`menu_icon`, `is_show`, `permission_tag`, `sort_no`, `status`,
|
||||
`created`, `created_by`, `modified`, `modified_by`, `remark`
|
||||
)
|
||||
SELECT
|
||||
366300000000000004, 366300000000000002, 1, '保存',
|
||||
'', '', '', 0, '/api/v1/datacenterSource/save', 2, 0,
|
||||
NOW(), 1, NOW(), 1, '数据源接入-保存'
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `tb_sys_menu` WHERE `id` = 366300000000000004
|
||||
);
|
||||
|
||||
INSERT INTO `tb_sys_role_menu` (`id`, `role_id`, `menu_id`)
|
||||
SELECT 366300000000000101, 1, 366300000000000001
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `tb_sys_role_menu` WHERE `id` = 366300000000000101
|
||||
);
|
||||
|
||||
INSERT INTO `tb_sys_role_menu` (`id`, `role_id`, `menu_id`)
|
||||
SELECT 366300000000000102, 1, 366300000000000002
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `tb_sys_role_menu` WHERE `id` = 366300000000000102
|
||||
);
|
||||
|
||||
INSERT INTO `tb_sys_role_menu` (`id`, `role_id`, `menu_id`)
|
||||
SELECT 366300000000000103, 1, 366300000000000003
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `tb_sys_role_menu` WHERE `id` = 366300000000000103
|
||||
);
|
||||
|
||||
INSERT INTO `tb_sys_role_menu` (`id`, `role_id`, `menu_id`)
|
||||
SELECT 366300000000000104, 1, 366300000000000004
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `tb_sys_role_menu` WHERE `id` = 366300000000000104
|
||||
);
|
||||
@@ -0,0 +1,20 @@
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
DELETE FROM `tb_sys_role_menu`
|
||||
WHERE `menu_id` IN (
|
||||
300818298270883840,
|
||||
300818387710222336,
|
||||
300818488214134784
|
||||
);
|
||||
|
||||
DELETE FROM `tb_sys_menu`
|
||||
WHERE `id` IN (
|
||||
300818298270883840,
|
||||
300818387710222336,
|
||||
300818488214134784
|
||||
)
|
||||
OR `permission_tag` IN (
|
||||
'/api/v1/datacenterTable/query',
|
||||
'/api/v1/datacenterTable/save',
|
||||
'/api/v1/datacenterTable/remove'
|
||||
);
|
||||
@@ -0,0 +1,101 @@
|
||||
INSERT INTO `tb_datacenter_source` (
|
||||
`id`, `dept_id`, `tenant_id`, `source_name`, `source_code`, `source_type`, `access_mode`,
|
||||
`builtin_flag`, `status`, `config_json`, `capabilities_json`, `created`, `created_by`, `modified`, `modified_by`
|
||||
)
|
||||
SELECT
|
||||
9000000000002000000 + t.tenant_id,
|
||||
t.dept_id,
|
||||
t.tenant_id,
|
||||
'项目 MySQL',
|
||||
CONCAT('PROJECT_MYSQL_', t.tenant_id),
|
||||
'PROJECT_MYSQL',
|
||||
'READ_WRITE',
|
||||
1,
|
||||
0,
|
||||
JSON_OBJECT('builtin', true),
|
||||
JSON_OBJECT('capabilities', JSON_ARRAY('TEST_CONNECTION', 'BROWSE_METADATA', 'READ_QUERY', 'WRITE_MUTATION')),
|
||||
NOW(),
|
||||
0,
|
||||
NOW(),
|
||||
0
|
||||
FROM (
|
||||
SELECT tenant_id, COALESCE(MIN(dept_id), 0) AS dept_id
|
||||
FROM (
|
||||
SELECT `tenant_id`, `dept_id`
|
||||
FROM `tb_datacenter_source`
|
||||
WHERE `source_type` = 'LOCAL_DYNAMIC'
|
||||
UNION ALL
|
||||
SELECT `tenant_id`, `dept_id`
|
||||
FROM `tb_datacenter_table`
|
||||
WHERE `table_kind` = 'LOCAL_DYNAMIC'
|
||||
OR `source_id` IN (
|
||||
SELECT `id` FROM `tb_datacenter_source` WHERE `source_type` = 'LOCAL_DYNAMIC'
|
||||
)
|
||||
) tenant_scope
|
||||
GROUP BY tenant_id
|
||||
) t
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `tb_datacenter_source` s WHERE s.`id` = 9000000000002000000 + t.tenant_id
|
||||
);
|
||||
|
||||
INSERT INTO `tb_datacenter_catalog` (
|
||||
`id`, `dept_id`, `tenant_id`, `source_id`, `catalog_name`, `catalog_desc`, `catalog_type`,
|
||||
`status`, `created`, `created_by`, `modified`, `modified_by`
|
||||
)
|
||||
SELECT
|
||||
9000000000003000000 + t.tenant_id,
|
||||
t.dept_id,
|
||||
t.tenant_id,
|
||||
9000000000002000000 + t.tenant_id,
|
||||
'project_mysql',
|
||||
'项目 MySQL',
|
||||
'DATABASE',
|
||||
0,
|
||||
NOW(),
|
||||
0,
|
||||
NOW(),
|
||||
0
|
||||
FROM (
|
||||
SELECT tenant_id, COALESCE(MIN(dept_id), 0) AS dept_id
|
||||
FROM (
|
||||
SELECT `tenant_id`, `dept_id`
|
||||
FROM `tb_datacenter_source`
|
||||
WHERE `source_type` = 'LOCAL_DYNAMIC'
|
||||
UNION ALL
|
||||
SELECT `tenant_id`, `dept_id`
|
||||
FROM `tb_datacenter_table`
|
||||
WHERE `table_kind` = 'LOCAL_DYNAMIC'
|
||||
OR `source_id` IN (
|
||||
SELECT `id` FROM `tb_datacenter_source` WHERE `source_type` = 'LOCAL_DYNAMIC'
|
||||
)
|
||||
) tenant_scope
|
||||
GROUP BY tenant_id
|
||||
) t
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `tb_datacenter_catalog` c WHERE c.`id` = 9000000000003000000 + t.tenant_id
|
||||
);
|
||||
|
||||
UPDATE `tb_datacenter_table`
|
||||
SET `source_id` = 9000000000002000000 + `tenant_id`,
|
||||
`catalog_id` = 9000000000003000000 + `tenant_id`,
|
||||
`table_kind` = 'PROJECT_MANAGED',
|
||||
`access_mode` = 'READ_WRITE',
|
||||
`materialized_table` = COALESCE(`materialized_table`, `actual_table`),
|
||||
`versioning_enabled` = COALESCE(`versioning_enabled`, 0),
|
||||
`capabilities_json` = JSON_OBJECT('capabilities', JSON_ARRAY('READ_QUERY', 'WRITE_MUTATION'))
|
||||
WHERE `table_kind` = 'LOCAL_DYNAMIC'
|
||||
OR `source_id` IN (
|
||||
SELECT `id` FROM `tb_datacenter_source` WHERE `source_type` = 'LOCAL_DYNAMIC'
|
||||
);
|
||||
|
||||
DELETE c
|
||||
FROM `tb_datacenter_catalog` c
|
||||
INNER JOIN `tb_datacenter_source` s ON s.`id` = c.`source_id`
|
||||
WHERE s.`source_type` = 'LOCAL_DYNAMIC';
|
||||
|
||||
DELETE FROM `tb_datacenter_source`
|
||||
WHERE `source_type` = 'LOCAL_DYNAMIC';
|
||||
|
||||
ALTER TABLE `tb_datacenter_table`
|
||||
MODIFY COLUMN `table_kind` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'EXTERNAL_TABLE' COMMENT '表类型',
|
||||
MODIFY COLUMN `access_mode` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'READ_ONLY' COMMENT '访问模式';
|
||||
Reference in New Issue
Block a user