From 4baa211e155db114960d1788540f27132381a5e5 Mon Sep 17 00:00:00 2001 From: OS <29528966+lenboo@users.noreply.github.com> Date: Tue, 9 Nov 2021 10:57:31 +0800 Subject: [PATCH] cherry-pick 6716 supplement Postgre procedure sql file (#6749) Co-authored-by: GaoTianDuo --- .../postgresql/dolphinscheduler_ddl.sql | 685 ++++++++---------- .../postgresql/dolphinscheduler_ddl_post.sql | 10 + 2 files changed, 297 insertions(+), 398 deletions(-) diff --git a/sql/upgrade/2.0.0_schema/postgresql/dolphinscheduler_ddl.sql b/sql/upgrade/2.0.0_schema/postgresql/dolphinscheduler_ddl.sql index 663148aa67..e68781b545 100644 --- a/sql/upgrade/2.0.0_schema/postgresql/dolphinscheduler_ddl.sql +++ b/sql/upgrade/2.0.0_schema/postgresql/dolphinscheduler_ddl.sql @@ -15,404 +15,293 @@ * limitations under the License. */ --- uc_dolphin_T_t_ds_user_A_state -delimiter ; -DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_user_A_state(); -delimiter d// -CREATE FUNCTION uc_dolphin_T_t_ds_user_A_state() RETURNS void AS $$ +CREATE OR REPLACE FUNCTION public.dolphin_update_metadata( + ) + RETURNS character varying + LANGUAGE 'plpgsql' + COST 100 + VOLATILE PARALLEL UNSAFE +AS $BODY$ +DECLARE + v_schema varchar; BEGIN - IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS - WHERE TABLE_CATALOG=current_database() - AND TABLE_SCHEMA=current_schema() - AND TABLE_NAME='t_ds_user' - AND COLUMN_NAME ='state') - THEN - ALTER TABLE t_ds_user ADD COLUMN state int DEFAULT 1; - comment on column t_ds_user.state is 'state 0:disable 1:enable'; - END IF; + ---get schema name + v_schema =current_schema(); + + --- rename columns + EXECUTE 'ALTER TABLE IF EXISTS ' || quote_ident(v_schema) ||'.t_ds_command RENAME COLUMN process_definition_id to process_definition_code'; + EXECUTE 'ALTER TABLE IF EXISTS ' || quote_ident(v_schema) ||'.t_ds_error_command RENAME COLUMN process_definition_id to process_definition_code'; + EXECUTE 'ALTER TABLE IF EXISTS ' || quote_ident(v_schema) ||'.t_ds_process_instance RENAME COLUMN process_definition_id to process_definition_code'; + EXECUTE 'ALTER TABLE IF EXISTS ' || quote_ident(v_schema) ||'.t_ds_task_instance RENAME COLUMN process_definition_id to task_code'; + EXECUTE 'ALTER TABLE IF EXISTS ' || quote_ident(v_schema) ||'.t_ds_schedules RENAME COLUMN process_definition_id to process_definition_code'; + EXECUTE 'ALTER TABLE IF EXISTS ' || quote_ident(v_schema) ||'.t_ds_process_definition RENAME COLUMN project_id to project_code'; + + --- alter column type + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_command ALTER COLUMN process_definition_code TYPE bigint'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_error_command ALTER COLUMN process_definition_code TYPE bigint'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_process_instance ALTER COLUMN process_definition_code TYPE bigint'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_task_instance ALTER COLUMN task_code TYPE bigint'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_schedules ALTER COLUMN process_definition_code TYPE bigint'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_process_definition ALTER COLUMN project_code TYPE bigint'; + + --- add columns + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_user ADD COLUMN IF NOT EXISTS "state" int DEFAULT 1'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_alertgroup ADD COLUMN IF NOT EXISTS "alert_instance_ids" varchar(255) DEFAULT NULL'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_alertgroup ADD COLUMN IF NOT EXISTS "create_user_id" int4 DEFAULT NULL'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_project ADD COLUMN IF NOT EXISTS "code" bigint NOT NULL'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_command ADD COLUMN IF NOT EXISTS "environment_code" bigint DEFAULT -1'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_command ADD COLUMN IF NOT EXISTS "dry_run" int DEFAULT 0'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_command ADD COLUMN IF NOT EXISTS "process_definition_version" int DEFAULT 0'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_command ADD COLUMN IF NOT EXISTS "process_instance_id" int DEFAULT 0'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_error_command ADD COLUMN IF NOT EXISTS "environment_code" bigint DEFAULT -1'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_error_command ADD COLUMN IF NOT EXISTS "dry_run" int DEFAULT 0'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_error_command ADD COLUMN IF NOT EXISTS "process_definition_version" int DEFAULT 0'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_error_command ADD COLUMN IF NOT EXISTS "process_instance_id" int DEFAULT 0'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_process_instance ADD COLUMN IF NOT EXISTS "process_definition_version" int DEFAULT 0'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_process_instance ADD COLUMN IF NOT EXISTS "environment_code" bigint DEFAULT -1'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_process_instance ADD COLUMN IF NOT EXISTS "var_pool" text'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_process_instance ADD COLUMN IF NOT EXISTS "dry_run" int DEFAULT 0'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_task_instance ADD COLUMN IF NOT EXISTS "task_definition_version" int DEFAULT 0'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_task_instance ADD COLUMN IF NOT EXISTS "task_params" text'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_task_instance ADD COLUMN IF NOT EXISTS "environment_code" bigint DEFAULT -1'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_task_instance ADD COLUMN IF NOT EXISTS "environment_config" text'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_task_instance ADD COLUMN IF NOT EXISTS "first_submit_time" timestamp DEFAULT NULL'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_task_instance ADD COLUMN IF NOT EXISTS "delay_time" int DEFAULT 0'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_task_instance ADD COLUMN IF NOT EXISTS "var_pool" text'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_task_instance ADD COLUMN IF NOT EXISTS "dry_run" int DEFAULT 0'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_schedules ADD COLUMN IF NOT EXISTS "timezone_id" varchar(40) DEFAULT NULL'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_schedules ADD COLUMN IF NOT EXISTS "environment_code" int DEFAULT -1'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_process_definition ADD COLUMN IF NOT EXISTS "code" bigint'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_process_definition ADD COLUMN IF NOT EXISTS "warning_group_id" int'; + + ---drop columns + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_tenant DROP COLUMN IF EXISTS "tenant_name"'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_process_instance DROP COLUMN IF EXISTS "process_instance_json"'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_process_instance DROP COLUMN IF EXISTS "locations"'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_process_instance DROP COLUMN IF EXISTS "connects"'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_process_instance DROP COLUMN IF EXISTS "dependence_schedule_times"'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_task_instance DROP COLUMN IF EXISTS "task_json"'; + + -- add CONSTRAINT + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'."t_ds_alertgroup" ADD CONSTRAINT "t_ds_alertgroup_name_un" UNIQUE ("group_name")'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'."t_ds_datasource" ADD CONSTRAINT "t_ds_datasource_name_un" UNIQUE ("name","type")'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'."t_ds_command" ALTER COLUMN "process_definition_code" SET NOT NULL'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'."t_ds_process_instance" ALTER COLUMN "process_definition_code" SET NOT NULL'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'."t_ds_task_instance" ALTER COLUMN "task_code" SET NOT NULL'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'."t_ds_schedules" ALTER COLUMN "process_definition_code" SET NOT NULL'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'."t_ds_process_definition" ALTER COLUMN "code" SET NOT NULL'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'."t_ds_process_definition" ALTER COLUMN "project_code" SET NOT NULL'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'."t_ds_process_definition" ADD CONSTRAINT "process_unique" UNIQUE ("name","project_code")'; + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'."t_ds_process_definition" ALTER COLUMN "description" SET NOT NULL'; + + --- drop index + EXECUTE 'DROP INDEX IF EXISTS "process_instance_index"'; + EXECUTE 'DROP INDEX IF EXISTS "task_instance_index"'; + + --- create index + EXECUTE 'CREATE INDEX IF NOT EXISTS priority_id_index ON ' || quote_ident(v_schema) ||'.t_ds_command USING Btree("process_instance_priority","id")'; + EXECUTE 'CREATE INDEX IF NOT EXISTS process_instance_index ON ' || quote_ident(v_schema) ||'.t_ds_process_instance USING Btree("process_definition_code","id")'; + + + ---add comment + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_user.state is ''state 0:disable 1:enable'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_alertgroup.alert_instance_ids is ''alert instance ids'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_alertgroup.create_user_id is ''create user id'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_project.code is ''coding'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_command.process_definition_code is ''process definition code'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_command.environment_code is ''environment code'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_command.dry_run is ''dry run flag:0 normal, 1 dry run'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_command.process_definition_version is ''process definition version'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_command.process_instance_id is ''process instance id'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_error_command.process_definition_code is ''process definition code'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_error_command.environment_code is ''environment code'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_error_command.dry_run is ''dry run flag:0 normal, 1 dry run'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_error_command.process_definition_version is ''process definition version'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_error_command.process_instance_id is ''process instance id'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_process_instance.process_definition_code is ''process instance code'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_process_instance.process_definition_version is ''process instance version'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_process_instance.environment_code is ''environment code'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_process_instance.var_pool is ''var pool'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_process_instance.dry_run is ''dry run flag:0 normal, 1 dry run'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_task_instance.task_code is ''task definition code'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_task_instance.task_definition_version is ''task definition version'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_task_instance.task_params is ''task params'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_task_instance.environment_code is ''environment code'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_task_instance.environment_config is ''this config contains many environment variables config'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_task_instance.first_submit_time is ''task first submit time'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_task_instance.delay_time is ''task delay execution time'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_task_instance.var_pool is ''var pool'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_task_instance.dry_run is ''dry run flag:0 normal, 1 dry run'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_schedules.process_definition_code is ''process definition code'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_schedules.timezone_id is ''timezone id'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_schedules.environment_code is ''environment code'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_process_definition.code is ''encoding'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_process_definition.project_code is ''project code'''; + EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_process_definition.warning_group_id is ''alert group id'''; + + --create table + EXECUTE 'CREATE TABLE IF NOT EXISTS '|| quote_ident(v_schema) ||'."t_ds_plugin_define" ( + id serial NOT NULL, + plugin_name varchar(100) NOT NULL, + plugin_type varchar(100) NOT NULL, + plugin_params text NULL, + create_time timestamp NULL, + update_time timestamp NULL, + CONSTRAINT t_ds_plugin_define_pk PRIMARY KEY (id), + CONSTRAINT t_ds_plugin_define_un UNIQUE (plugin_name, plugin_type) + )'; + + EXECUTE 'CREATE TABLE IF NOT EXISTS '|| quote_ident(v_schema) ||'."t_ds_alert_plugin_instance" ( + id serial NOT NULL, + plugin_define_id int4 NOT NULL, + plugin_instance_params text NULL, + create_time timestamp NULL, + update_time timestamp NULL, + instance_name varchar(200) NULL, + CONSTRAINT t_ds_alert_plugin_instance_pk PRIMARY KEY (id) + )'; + + EXECUTE 'CREATE TABLE IF NOT EXISTS '|| quote_ident(v_schema) ||'."t_ds_environment" ( + id serial NOT NULL, + code bigint NOT NULL, + name varchar(100) DEFAULT NULL, + config text DEFAULT NULL, + description text, + operator int DEFAULT NULL, + create_time timestamp DEFAULT NULL, + update_time timestamp DEFAULT NULL, + PRIMARY KEY (id), + CONSTRAINT environment_name_unique UNIQUE (name), + CONSTRAINT environment_code_unique UNIQUE (code) + )'; + + EXECUTE 'CREATE TABLE IF NOT EXISTS '|| quote_ident(v_schema) ||'."t_ds_environment_worker_group_relation" ( + id serial NOT NULL, + environment_code bigint NOT NULL, + worker_group varchar(255) NOT NULL, + operator int DEFAULT NULL, + create_time timestamp DEFAULT NULL, + update_time timestamp DEFAULT NULL, + PRIMARY KEY (id) , + CONSTRAINT environment_worker_group_unique UNIQUE (environment_code,worker_group) + )'; + + EXECUTE 'CREATE TABLE IF NOT EXISTS '|| quote_ident(v_schema) ||'."t_ds_process_definition_log" ( + id int NOT NULL , + code bigint NOT NULL, + name varchar(255) DEFAULT NULL , + version int NOT NULL , + description text , + project_code bigint DEFAULT NULL , + release_state int DEFAULT NULL , + user_id int DEFAULT NULL , + global_params text , + locations text , + warning_group_id int DEFAULT NULL , + flag int DEFAULT NULL , + timeout int DEFAULT 0 , + tenant_id int DEFAULT -1 , + execution_type int DEFAULT 0, + operator int DEFAULT NULL , + operate_time timestamp DEFAULT NULL , + create_time timestamp DEFAULT NULL , + update_time timestamp DEFAULT NULL , + PRIMARY KEY (id) + )'; + + EXECUTE 'CREATE TABLE IF NOT EXISTS '|| quote_ident(v_schema) ||'."t_ds_task_definition" ( + id int NOT NULL , + code bigint NOT NULL, + name varchar(255) DEFAULT NULL , + version int NOT NULL , + description text , + project_code bigint DEFAULT NULL , + user_id int DEFAULT NULL , + task_type varchar(50) DEFAULT NULL , + task_params text , + flag int DEFAULT NULL , + task_priority int DEFAULT NULL , + worker_group varchar(255) DEFAULT NULL , + environment_code bigint DEFAULT -1, + fail_retry_times int DEFAULT NULL , + fail_retry_interval int DEFAULT NULL , + timeout_flag int DEFAULT NULL , + timeout_notify_strategy int DEFAULT NULL , + timeout int DEFAULT 0 , + delay_time int DEFAULT 0 , + resource_ids text , + create_time timestamp DEFAULT NULL , + update_time timestamp DEFAULT NULL , + PRIMARY KEY (id) + )'; + + EXECUTE 'CREATE TABLE IF NOT EXISTS '|| quote_ident(v_schema) ||'."t_ds_task_definition_log" ( + id int NOT NULL , + code bigint NOT NULL, + name varchar(255) DEFAULT NULL , + version int NOT NULL , + description text , + project_code bigint DEFAULT NULL , + user_id int DEFAULT NULL , + task_type varchar(50) DEFAULT NULL , + task_params text , + flag int DEFAULT NULL , + task_priority int DEFAULT NULL , + worker_group varchar(255) DEFAULT NULL , + environment_code bigint DEFAULT -1, + fail_retry_times int DEFAULT NULL , + fail_retry_interval int DEFAULT NULL , + timeout_flag int DEFAULT NULL , + timeout_notify_strategy int DEFAULT NULL , + timeout int DEFAULT 0 , + delay_time int DEFAULT 0 , + resource_ids text , + operator int DEFAULT NULL , + operate_time timestamp DEFAULT NULL , + create_time timestamp DEFAULT NULL , + update_time timestamp DEFAULT NULL , + PRIMARY KEY (id) + )'; + + EXECUTE 'CREATE TABLE IF NOT EXISTS '|| quote_ident(v_schema) ||'."t_ds_process_task_relation" ( + id int NOT NULL , + name varchar(255) DEFAULT NULL , + project_code bigint DEFAULT NULL , + process_definition_code bigint DEFAULT NULL , + process_definition_version int DEFAULT NULL , + pre_task_code bigint DEFAULT NULL , + pre_task_version int DEFAULT 0 , + post_task_code bigint DEFAULT NULL , + post_task_version int DEFAULT 0 , + condition_type int DEFAULT NULL , + condition_params text , + create_time timestamp DEFAULT NULL , + update_time timestamp DEFAULT NULL , + PRIMARY KEY (id) + )'; + + EXECUTE 'CREATE TABLE IF NOT EXISTS '|| quote_ident(v_schema) ||'."t_ds_process_task_relation_log" ( + id int NOT NULL , + name varchar(255) DEFAULT NULL , + project_code bigint DEFAULT NULL , + process_definition_code bigint DEFAULT NULL , + process_definition_version int DEFAULT NULL , + pre_task_code bigint DEFAULT NULL , + pre_task_version int DEFAULT 0 , + post_task_code bigint DEFAULT NULL , + post_task_version int DEFAULT 0 , + condition_type int DEFAULT NULL , + condition_params text , + operator int DEFAULT NULL , + operate_time timestamp DEFAULT NULL , + create_time timestamp DEFAULT NULL , + update_time timestamp DEFAULT NULL , + PRIMARY KEY (id) + )'; + return 'Success!'; + exception when others then + ---Raise EXCEPTION '(%)',SQLERRM; + return SQLERRM; END; -$$ LANGUAGE plpgsql; -d// -delimiter ; -select uc_dolphin_T_t_ds_user_A_state(); -DROP FUNCTION uc_dolphin_T_t_ds_user_A_state(); +$BODY$; --- uc_dolphin_T_t_ds_tenant_A_tenant_name -delimiter ; -DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_tenant_A_tenant_name(); -delimiter d// -CREATE FUNCTION uc_dolphin_T_t_ds_tenant_A_tenant_name() RETURNS void AS $$ -BEGIN - IF EXISTS (SELECT 1 FROM information_schema.COLUMNS - WHERE TABLE_CATALOG=current_database() - AND TABLE_SCHEMA=current_schema() - AND TABLE_NAME='t_ds_tenant' - AND COLUMN_NAME ='tenant_name') - THEN - ALTER TABLE t_ds_tenant DROP COLUMN "tenant_name"; - END IF; -END; -$$ LANGUAGE plpgsql; -d// -delimiter ; -select uc_dolphin_T_t_ds_tenant_A_tenant_name(); -DROP FUNCTION uc_dolphin_T_t_ds_tenant_A_tenant_name(); - --- uc_dolphin_T_t_ds_task_instance_A_first_submit_time -delimiter d// -CREATE OR REPLACE FUNCTION uc_dolphin_T_t_ds_task_instance_A_first_submit_time() RETURNS void AS $$ -BEGIN - IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS - WHERE TABLE_NAME='t_ds_task_instance' - AND COLUMN_NAME ='first_submit_time') - THEN - ALTER TABLE t_ds_task_instance ADD COLUMN first_submit_time timestamp DEFAULT NULL; - END IF; -END; -$$ LANGUAGE plpgsql; -d// - -delimiter ; -SELECT uc_dolphin_T_t_ds_task_instance_A_first_submit_time(); -DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_task_instance_A_first_submit_time(); - --- uc_dolphin_T_t_ds_task_instance_A_delay_time -delimiter d// -CREATE OR REPLACE FUNCTION uc_dolphin_T_t_ds_task_instance_A_delay_time() RETURNS void AS $$ -BEGIN - IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS - WHERE TABLE_NAME='t_ds_task_instance' - AND COLUMN_NAME ='delay_time') - THEN - ALTER TABLE t_ds_task_instance ADD COLUMN delay_time int DEFAULT '0'; - END IF; -END; -$$ LANGUAGE plpgsql; -d// - -delimiter ; -SELECT uc_dolphin_T_t_ds_task_instance_A_delay_time(); -DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_task_instance_A_delay_time(); - --- uc_dolphin_T_t_ds_task_instance_A_var_pool -delimiter d// -CREATE OR REPLACE FUNCTION uc_dolphin_T_t_ds_task_instance_A_var_pool() RETURNS void AS $$ -BEGIN - IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS - WHERE TABLE_NAME='t_ds_task_instance' - AND COLUMN_NAME ='var_pool') - THEN - ALTER TABLE t_ds_task_instance ADD COLUMN var_pool text; - END IF; -END; -$$ LANGUAGE plpgsql; -d// - -delimiter ; -SELECT uc_dolphin_T_t_ds_task_instance_A_var_pool(); -DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_task_instance_A_var_pool(); - --- uc_dolphin_T_t_ds_process_instance_A_var_pool -delimiter d// -CREATE OR REPLACE FUNCTION uc_dolphin_T_t_ds_process_instance_A_var_pool() RETURNS void AS $$ -BEGIN - IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS - WHERE TABLE_NAME='t_ds_process_instance' - AND COLUMN_NAME ='var_pool') - THEN - ALTER TABLE t_ds_process_instance ADD COLUMN var_pool text; - END IF; -END; -$$ LANGUAGE plpgsql; -d// - -delimiter ; -SELECT uc_dolphin_T_t_ds_process_instance_A_var_pool(); -DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_process_instance_A_var_pool(); - --- uc_dolphin_T_t_ds_process_definition_A_modify_by -delimiter d// -CREATE OR REPLACE FUNCTION ct_dolphin_T_t_ds_process_definition_version() RETURNS void AS $$ -BEGIN - CREATE TABLE IF NOT EXISTS t_ds_process_definition_version ( - id int NOT NULL , - process_definition_id int NOT NULL , - version int DEFAULT NULL , - process_definition_json text , - description text , - global_params text , - locations text , - connects text , - receivers text , - receivers_cc text , - create_time timestamp DEFAULT NULL , - timeout int DEFAULT '0' , - resource_ids varchar(64), - PRIMARY KEY (id) - ) ; - create index process_definition_id_and_version on t_ds_process_definition_version (process_definition_id,version); - - DROP SEQUENCE IF EXISTS t_ds_process_definition_version_id_sequence; - CREATE SEQUENCE t_ds_process_definition_version_id_sequence; - ALTER TABLE t_ds_process_definition_version ALTER COLUMN id SET DEFAULT NEXTVAL('t_ds_process_definition_version_id_sequence'); -END; -$$ LANGUAGE plpgsql; -d// - -delimiter ; -SELECT ct_dolphin_T_t_ds_process_definition_version(); -DROP FUNCTION IF EXISTS ct_dolphin_T_t_ds_process_definition_version(); - --- ---------------------------- --- Table structure for t_ds_plugin_define --- ---------------------------- -DROP TABLE IF EXISTS t_ds_plugin_define; -CREATE TABLE t_ds_plugin_define ( - id serial NOT NULL, - plugin_name varchar(100) NOT NULL, - plugin_type varchar(100) NOT NULL, - plugin_params text NULL, - create_time timestamp NULL, - update_time timestamp NULL, - CONSTRAINT t_ds_plugin_define_pk PRIMARY KEY (id), - CONSTRAINT t_ds_plugin_define_un UNIQUE (plugin_name, plugin_type) -); - --- ---------------------------- --- Table structure for t_ds_alert_plugin_instance --- ---------------------------- -DROP TABLE IF EXISTS t_ds_alert_plugin_instance; -CREATE TABLE t_ds_alert_plugin_instance ( - id serial NOT NULL, - plugin_define_id int4 NOT NULL, - plugin_instance_params text NULL, - create_time timestamp NULL, - update_time timestamp NULL, - instance_name varchar(200) NULL, - CONSTRAINT t_ds_alert_plugin_instance_pk PRIMARY KEY (id) -); - --- uc_dolphin_T_t_ds_process_definition_A_warning_group_id -delimiter d// -CREATE OR REPLACE FUNCTION uc_dolphin_T_t_ds_process_definition_A_warning_group_id() RETURNS void AS $$ -BEGIN - IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS - WHERE TABLE_NAME='t_ds_process_definition' - AND COLUMN_NAME ='warning_group_id') - THEN - ALTER TABLE t_ds_process_definition ADD COLUMN warning_group_id int4 DEFAULT NULL; - COMMENT ON COLUMN t_ds_process_definition.warning_group_id IS 'alert group id'; - END IF; -END; -$$ LANGUAGE plpgsql; -d// - -delimiter ; -SELECT uc_dolphin_T_t_ds_process_definition_A_warning_group_id(); -DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_process_definition_A_warning_group_id(); - --- uc_dolphin_T_t_ds_process_definition_version_A_warning_group_id -delimiter d// -CREATE OR REPLACE FUNCTION uc_dolphin_T_t_ds_process_definition_version_A_warning_group_id() RETURNS void AS $$ -BEGIN - IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS - WHERE TABLE_NAME='t_ds_process_definition_version' - AND COLUMN_NAME ='warning_group_id') - THEN - ALTER TABLE t_ds_process_definition_version ADD COLUMN warning_group_id int4 DEFAULT NULL; - COMMENT ON COLUMN t_ds_process_definition_version.warning_group_id IS 'alert group id'; - END IF; -END; -$$ LANGUAGE plpgsql; -d// - -delimiter ; -SELECT uc_dolphin_T_t_ds_process_definition_version_A_warning_group_id(); -DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_process_definition_version_A_warning_group_id(); - --- uc_dolphin_T_t_ds_alertgroup_A_alert_instance_ids -delimiter d// -CREATE OR REPLACE FUNCTION uc_dolphin_T_t_ds_alertgroup_A_alert_instance_ids() RETURNS void AS $$ -BEGIN - IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS - WHERE TABLE_NAME='t_ds_alertgroup' - AND COLUMN_NAME ='alert_instance_ids') - THEN - ALTER TABLE t_ds_alertgroup ADD COLUMN alert_instance_ids varchar (255) DEFAULT NULL; - COMMENT ON COLUMN t_ds_alertgroup.alert_instance_ids IS 'alert instance ids'; - END IF; -END; -$$ LANGUAGE plpgsql; -d// - -delimiter ; -SELECT uc_dolphin_T_t_ds_alertgroup_A_alert_instance_ids(); -DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_alertgroup_A_alert_instance_ids(); - --- uc_dolphin_T_t_ds_alertgroup_A_create_user_id -delimiter d// -CREATE OR REPLACE FUNCTION uc_dolphin_T_t_ds_alertgroup_A_create_user_id() RETURNS void AS $$ -BEGIN - IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS - WHERE TABLE_NAME='t_ds_alertgroup' - AND COLUMN_NAME ='create_user_id') - THEN - ALTER TABLE t_ds_alertgroup ADD COLUMN create_user_id int4 DEFAULT NULL; - COMMENT ON COLUMN t_ds_alertgroup.create_user_id IS 'create user id'; - END IF; -END; -$$ LANGUAGE plpgsql; -d// - -delimiter ; -SELECT uc_dolphin_T_t_ds_alertgroup_A_create_user_id(); -DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_alertgroup_A_create_user_id(); - --- uc_dolphin_T_t_ds_alertgroup_A_add_UN_groupName -delimiter d// -CREATE OR REPLACE FUNCTION uc_dolphin_T_t_ds_alertgroup_A_add_UN_groupName() RETURNS void AS $$ -BEGIN - IF NOT EXISTS (SELECT 1 FROM pg_stat_all_indexes - WHERE relname='t_ds_alertgroup' - AND indexrelname ='t_ds_alertgroup_name_un') - THEN - ALTER TABLE t_ds_alertgroup ADD CONSTRAINT t_ds_alertgroup_name_un UNIQUE (group_name); - END IF; -END; -$$ LANGUAGE plpgsql; -d// - -delimiter ; -SELECT uc_dolphin_T_t_ds_alertgroup_A_add_UN_groupName(); -DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_alertgroup_A_add_UN_groupName(); - --- uc_dolphin_T_t_ds_datasource_A_add_UN_datasourceName -delimiter d// -CREATE OR REPLACE FUNCTION uc_dolphin_T_t_ds_datasource_A_add_UN_datasourceName() RETURNS void AS $$ -BEGIN - IF NOT EXISTS (SELECT 1 FROM pg_stat_all_indexes - WHERE relname='t_ds_datasource' - AND indexrelname ='t_ds_datasource_name_un') - THEN - ALTER TABLE t_ds_datasource ADD CONSTRAINT t_ds_datasource_name_un UNIQUE (name, type); - END IF; -END; -$$ LANGUAGE plpgsql; -d// - -delimiter ; -SELECT uc_dolphin_T_t_ds_datasource_A_add_UN_datasourceName(); -DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_datasource_A_add_UN_datasourceName(); - --- uc_dolphin_T_t_ds_schedules_A_add_timezone -delimiter d// -CREATE OR REPLACE FUNCTION uc_dolphin_T_t_ds_schedules_A_add_timezone() RETURNS void AS $$ -BEGIN - IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS - WHERE TABLE_NAME='t_ds_schedules' - AND COLUMN_NAME ='timezone_id') - THEN -ALTER TABLE t_ds_schedules ADD COLUMN timezone_id varchar(40) DEFAULT NULL; -END IF; -END; -$$ LANGUAGE plpgsql; -d// - -delimiter ; -SELECT uc_dolphin_T_t_ds_schedules_A_add_timezone(); -DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_schedules_A_add_timezone(); - --- --- Table structure for table t_ds_environment --- -DROP TABLE IF EXISTS t_ds_environment; -CREATE TABLE t_ds_environment ( - id serial NOT NULL , - code bigint NOT NULL, - name varchar(100) DEFAULT NULL , - config text DEFAULT NULL , - description text , - operator int DEFAULT NULL , - create_time timestamp DEFAULT NULL , - update_time timestamp DEFAULT NULL , - PRIMARY KEY (id) , - CONSTRAINT environment_name_unique UNIQUE (name), - CONSTRAINT environment_code_unique UNIQUE (code) -); - -ALTER TABLE t_ds_task_definition ADD COLUMN environment_code bigint DEFAULT '-1'; -comment on column t_ds_task_definition.environment_code is 'environment code'; - -ALTER TABLE t_ds_task_definition_log ADD COLUMN environment_code bigint DEFAULT '-1'; -comment on column t_ds_task_definition_log.environment_code is 'environment code'; - -ALTER TABLE t_ds_command ADD COLUMN environment_code bigint DEFAULT '-1'; -comment on column t_ds_command.environment_code is 'environment code'; - -ALTER TABLE t_ds_error_command ADD COLUMN environment_code bigint DEFAULT '-1'; -comment on column t_ds_error_command.environment_code is 'environment code'; - -ALTER TABLE t_ds_schedules ADD COLUMN environment_code bigint DEFAULT '-1'; -comment on column t_ds_schedules.environment_code is 'environment code'; - -ALTER TABLE t_ds_process_instance ADD COLUMN environment_code bigint DEFAULT '-1'; -comment on column t_ds_process_instance.environment_code is 'environment code'; - -ALTER TABLE t_ds_task_instance ADD COLUMN environment_code bigint DEFAULT '-1'; -comment on column t_ds_task_instance.environment_code is 'environment code'; - -ALTER TABLE t_ds_task_instance ADD COLUMN environment_config text; -comment on column t_ds_task_instance.environment_config is 'environment config'; - --- --- Table structure for table t_ds_environment_worker_group_relation --- -DROP TABLE IF EXISTS t_ds_environment_worker_group_relation; -CREATE TABLE t_ds_environment_worker_group_relation ( - id serial NOT NULL, - environment_code bigint NOT NULL, - worker_group varchar(255) NOT NULL, - operator int DEFAULT NULL, - create_time timestamp DEFAULT NULL, - update_time timestamp DEFAULT NULL, - PRIMARY KEY (id) , - CONSTRAINT environment_worker_group_unique UNIQUE (environment_code,worker_group) -); - -ALTER TABLE t_ds_task_definition ALTER COLUMN resource_ids TYPE text; -ALTER TABLE t_ds_task_definition_log ALTER COLUMN resource_ids TYPE text; - --- uc_dolphin_T_t_ds_task_definition_A_drop_UN_taskName -delimiter d// -CREATE OR REPLACE FUNCTION uc_dolphin_T_t_ds_task_definition_A_drop_UN_taskName() RETURNS void AS $$ -BEGIN - IF EXISTS (SELECT 1 FROM pg_stat_all_indexes - WHERE relname='t_ds_task_definition' - AND indexrelname ='task_definition_unique') - ALTER TABLE t_ds_task_definition drop CONSTRAINT task_definition_unique; - END IF; -END; -$$ LANGUAGE plpgsql; -d// - -delimiter ; -SELECT uc_dolphin_T_t_ds_task_definition_A_drop_UN_taskName(); -DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_task_definition_A_drop_UN_taskName(); - --- ---------------------------- --- These columns will not be used in the new version,if you determine that the historical data is useless, you can delete it using the sql below --- ---------------------------- - --- ALTER TABLE t_ds_alert DROP COLUMN "show_type", DROP COLUMN "alert_type", DROP COLUMN "receivers", DROP COLUMN "receivers_cc"; - --- ALTER TABLE t_ds_alertgroup DROP COLUMN "group_type"; - --- ALTER TABLE t_ds_process_definition DROP COLUMN "receivers", DROP COLUMN "receivers_cc"; - --- ALTER TABLE t_ds_process_definition_version DROP COLUMN "receivers", DROP COLUMN "receivers_cc"; - --- DROP TABLE IF EXISTS t_ds_relation_user_alertgroup; - --- ALTER TABLE t_ds_command DROP COLUMN "dependence"; - --- ALTER TABLE t_ds_error_command DROP COLUMN "dependence"; \ No newline at end of file diff --git a/sql/upgrade/2.0.0_schema/postgresql/dolphinscheduler_ddl_post.sql b/sql/upgrade/2.0.0_schema/postgresql/dolphinscheduler_ddl_post.sql index 5f26e3515d..728b6bd239 100644 --- a/sql/upgrade/2.0.0_schema/postgresql/dolphinscheduler_ddl_post.sql +++ b/sql/upgrade/2.0.0_schema/postgresql/dolphinscheduler_ddl_post.sql @@ -15,3 +15,13 @@ * limitations under the License. */ +ALTER TABLE "t_ds_process_definition" DROP CONSTRAINT "t_ds_process_definition_pkey"; +ALTER TABLE "t_ds_process_definition" ADD CONSTRAINT "t_ds_process_definition_pkey" PRIMARY KEY ("id","code"); +ALTER TABLE "t_ds_process_definition" DROP CONSTRAINT "process_definition_unique"; +DROP INDEX "process_definition_index"; +ALTER TABLE "t_ds_process_definition" DROP "process_definition_json"; +ALTER TABLE "t_ds_process_definition" DROP "connects"; +ALTER TABLE "t_ds_process_definition" DROP "receivers"; +ALTER TABLE "t_ds_process_definition" DROP "receivers_cc"; +ALTER TABLE "t_ds_process_definition" DROP "modify_by"; +ALTER TABLE "t_ds_process_definition" DROP "resource_ids"; \ No newline at end of file