You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@dolphinscheduler.apache.org by boyi <zh...@163.com> on 2020/10/21 08:16:47 UTC
[DISCUSS] Import and export changes too much #3937
hi:
In order to support the import and export of workflow definition, data source and resource file, code field is added
But found a lot of changes, please give your opinion, discuss how to do
The address of issue and code is as follows:
—————————————————————————————————————
为了支持工作流定义,数据源,资源文件的导入导出, 增加了code字段.
但是发现改动很多,麻烦各位发表一下意见,讨论应该怎么做.
issue和code地址如下:
—————————————————————————————————————
issues:
https://github.com/apache/incubator-dolphinscheduler/issues/3937
code:
https://github.com/BoYiZhang/incubator-dolphinscheduler/tree/feature_3937
--------------------------------------------------------------------------
issue: #3937
This feature is the front of feature #3820
Code field is added to support subsequent import and export functions
db table change
t_ds_project [Add field code ]
t_ds_process_definition [ Add field code ,parent_code,is_directory, update project_id -> project_code , resource_ids -> resource_codes ]
t_ds_process_definition_version [ update process_definition_id -> process_definition_code , resource_ids -> resource_codes ]
t_ds_datasource [Add field code]
t_ds_udfs [add field code, update field resource_id -> resource_code ]
—————————————————————————————————————
SQL change script :
use dolphinscheduler ;
-- 1. 更改数据库表结构
ALTER TABLE `t_ds_datasource` ADD COLUMN `code` VARCHAR(128) NOT NULL COMMENT '编码' AFTER `id` ;
ALTER TABLE `t_ds_resources` ADD COLUMN `code` VARCHAR(128) NOT NULL COMMENT '唯一编码' AFTER `id` ;
ALTER TABLE `t_ds_resources` CHANGE COLUMN `pid` `parent_code` VARCHAR(128) DEFAULT '-1' COMMENT 'parent code' ;
ALTER TABLE `t_ds_udfs` ADD COLUMN `code` VARCHAR(128) NOT NULL COMMENT '唯一编码' AFTER `id` ;
ALTER TABLE `t_ds_udfs` CHANGE COLUMN `resource_id` `resource_code` VARCHAR(128) NOT NULL COMMENT 'resource code' ;
ALTER TABLE `t_ds_project` ADD COLUMN `code` VARCHAR(128) NOT NULL COMMENT '项目唯一编码' AFTER `id` ;
ALTER TABLE `t_ds_process_definition` ADD COLUMN `code` VARCHAR(128) NOT NULL COMMENT '全局变量唯一编码' AFTER `id` ;
ALTER TABLE `t_ds_process_definition` CHANGE COLUMN `project_id` `project_code` VARCHAR(128) NOT NULL COMMENT 'project code' ;
ALTER TABLE `t_ds_process_definition` CHANGE `resource_ids` `resource_codes` VARCHAR(128) ;
ALTER TABLE `t_ds_process_definition_version` CHANGE `process_definition_id` `process_definition_code` VARCHAR(128) ;
ALTER TABLE `t_ds_process_definition_version` CHANGE `resource_ids` `resource_codes` VARCHAR(128) ;
ALTER TABLE `t_ds_schedules` CHANGE `process_definition_id` `process_definition_code` VARCHAR(128) ;
-- 2.构建唯一索引
ALTER TABLE `t_ds_datasource` ADD UNIQUE INDEX `code_UNIQUE` (`code` ASC) ;
ALTER TABLE `t_ds_resources` ADD UNIQUE INDEX `code_UNIQUE` (`code` ASC) ;
ALTER TABLE `t_ds_udfs` ADD UNIQUE INDEX `code_UNIQUE` (`code` ASC) ;
ALTER TABLE `t_ds_project` ADD UNIQUE INDEX `code_UNIQUE` (`code` ASC) ;
ALTER TABLE `t_ds_process_definition` ADD UNIQUE INDEX `process_definition_unique_code` (`code` ASC, `project_code` ASC);
-- 3.升级之前的历史数据 [如果没有数据,则不做变动]
UPDATE `t_ds_datasource` SET code = id ;
UPDATE `t_ds_resources` SET code = id ;
UPDATE `t_ds_udfs` SET code = id ;
UPDATE `t_ds_project` SET code = id ;
UPDATE `t_ds_process_definition` SET code = id ;
// 4. 升级工作流定义中的关于依赖任务和子流程定义中的数据结构[如果没有数据,则不做变动]
这部分需要运行升级代码
issues:
https://github.com/apache/incubator-dolphinscheduler/issues/3937
code:
https://github.com/BoYiZhang/incubator-dolphinscheduler/tree/feature_3937