浏览代码

share table

liweiquan 2 年之前
父节点
当前提交
8b633065b5
共有 2 个文件被更改,包括 36 次插入38 次删除
  1. 6 0
      app/crud/data_table.py
  2. 30 38
      data/data.sql

+ 6 - 0
app/crud/data_table.py

@@ -55,7 +55,13 @@ def share_ailab(db: Session, item: schemas.ShareAilab):
     db_items = []
     for table_name in table_names:
         if not table_name in ailab_table_names: raise Exception(f'数据湖中不存在表{table_name}')
+        data_tables: List[models.DataTable] = db.query(models.DataTable)\
+            .filter(models.DataTable.table_name==table_name)\
+            .filter(models.DataTable.type == 0).all()
+        p_ids = [d.project_id for d in data_tables]
         for project_id in project_ids:
+            if project_id in p_ids:
+                continue
             data_table = models.DataTable(**{
                 'table_name': table_name,
                 'source': 1,

+ 30 - 38
data/data.sql

@@ -347,12 +347,12 @@ ADD COLUMN `status` tinyint(4) NOT NULL COMMENT '状态(1:转存中,2:成功,3:
 -- ----------------------------
 DROP TABLE IF EXISTS `project`;
 CREATE TABLE `project` (
-  `id` bigint(20) NOT NULL AUTO_INCREMENT,
-  `name` varchar(30) COLLATE utf8_unicode_ci NOT NULL COMMENT '项目名称',
-  `code` varchar(128) COLLATE utf8_unicode_ci NOT NULL COMMENT '项目编码',
-  `type` tinyint(4) NOT NULL COMMENT '项目类型(0:算法组;1:普通项目)',
-  `create_time` int(20) NOT NULL COMMENT '创建时间',
-  `project_token` varchar(1000) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'project_token',
+  `id` bigint NOT NULL AUTO_INCREMENT,
+  `name` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL COMMENT '项目名称',
+  `code` varchar(128) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL COMMENT '项目编码',
+  `type` tinyint NOT NULL COMMENT '项目类型(0:算法组;1:普通项目)',
+  `create_time` int NOT NULL COMMENT '创建时间',
+  `project_token` varchar(1000) DEFAULT NULL COMMENT 'project_token',
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='项目';
 
@@ -368,13 +368,13 @@ COMMIT;
 -- ----------------------------
 DROP TABLE IF EXISTS `users`;
 CREATE TABLE `users` (
-  `id` bigint(20) NOT NULL AUTO_INCREMENT,
-  `name` varchar(30) COLLATE utf8_unicode_ci NOT NULL COMMENT '姓名',
-  `code` varchar(128) COLLATE utf8_unicode_ci NOT NULL COMMENT '用户编码',
-  `username` varchar(30) COLLATE utf8_unicode_ci NOT NULL COMMENT '用户名',
-  `password` varchar(128) COLLATE utf8_unicode_ci NOT NULL COMMENT '密码暗文',
-  `create_time` int(20) NOT NULL COMMENT '创建时间',
-  `user_token` varchar(1000) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'user_token',
+  `id` bigint NOT NULL AUTO_INCREMENT,
+  `name` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL COMMENT '姓名',
+  `code` varchar(128) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL COMMENT '用户编码',
+  `username` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL COMMENT '用户名',
+  `password` varchar(128) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL COMMENT '密码暗文',
+  `create_time` int NOT NULL COMMENT '创建时间',
+  `user_token` varchar(1000) DEFAULT NULL COMMENT 'user_token',
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='项目用户';
 
@@ -390,9 +390,9 @@ COMMIT;
 -- ----------------------------
 DROP TABLE IF EXISTS `roles`;
 CREATE TABLE `roles` (
-  `id` bigint(20) NOT NULL,
-  `name` varchar(30) COLLATE utf8_unicode_ci NOT NULL COMMENT '角色名',
-  `code` varchar(128) COLLATE utf8_unicode_ci NOT NULL COMMENT '角色编码',
+  `id` bigint NOT NULL AUTO_INCREMENT,
+  `name` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL COMMENT '角色名',
+  `code` varchar(128) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL COMMENT '角色编码',
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色';
 
@@ -412,10 +412,10 @@ COMMIT;
 -- ----------------------------
 DROP TABLE IF EXISTS `project_user_relation`;
 CREATE TABLE `project_user_relation` (
-  `id` bigint(20) NOT NULL,
-  `user_id` bigint(20) NOT NULL COMMENT '用户id',
-  `project_id` bigint(20) NOT NULL COMMENT '项目id',
-  `role_id` bigint(20) NOT NULL COMMENT '角色id',
+  `id` bigint NOT NULL AUTO_INCREMENT,
+  `user_id` bigint NOT NULL COMMENT '用户id',
+  `project_id` bigint NOT NULL COMMENT '项目id',
+  `role_id` bigint NOT NULL COMMENT '角色id',
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='项目用户关系';
 
@@ -431,25 +431,17 @@ COMMIT;
 -- ----------------------------
 DROP TABLE IF EXISTS `data_table`;
 CREATE TABLE `data_table` (
-  `id` bigint(20) NOT NULL AUTO_INCREMENT,
-  `database_name` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '库名',
-  `table_name` varchar(100) COLLATE utf8_unicode_ci NOT NULL COMMENT '表名',
-  `source` tinyint(4) NOT NULL COMMENT '源(0:数据湖;1:ailab)',
-  `type` tinyint(4) NOT NULL COMMENT '类型(0:被分享;1:自建;2:导入)',
-  `project_id` bigint(20) NOT NULL COMMENT '项目id',
-  `table_path` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'hdfs的path',
-  `create_time` bigint(13) NOT NULL COMMENT '创建时间',
-  `user_id` bigint(20) NOT NULL COMMENT '创建人、分享人',
+  `id` bigint NOT NULL AUTO_INCREMENT,
+  `database_name` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL COMMENT '库名',
+  `table_name` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL COMMENT '表名',
+  `source` tinyint NOT NULL COMMENT '源(0:数据湖;1:ailab)',
+  `type` tinyint NOT NULL COMMENT '类型(0:被分享;1:自建;2:导入)',
+  `project_id` bigint NOT NULL COMMENT '项目id',
+  `table_path` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL COMMENT 'hdfs的path',
+  `create_time` bigint NOT NULL COMMENT '创建时间',
+  `user_id` bigint NOT NULL COMMENT '创建人、分享人',
   PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='表';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='表';
 
--- ----------------------------
--- Alter for data_table
--- ----------------------------
-ALTER TABLE `data_table`
-ADD COLUMN `table_path` varchar(255) NULL COMMENT 'hdfs的path' AFTER `project_id`;
-ALTER TABLE `data_table`
-ADD COLUMN `create_time` bigint(13) NOT NULL COMMENT '创建时间' AFTER `table_path`,
-ADD COLUMN `user_id` bigint(20) NOT NULL COMMENT '创建人、分享人' AFTER `create_time`;
 
 SET FOREIGN_KEY_CHECKS = 1;