You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by ki...@apache.org on 2021/11/09 02:57:36 UTC

[dolphinscheduler] branch 2.0.0-release-prepare updated: cherry-pick 6716 supplement Postgre procedure sql file (#6749)

This is an automated email from the ASF dual-hosted git repository.

kirs pushed a commit to branch 2.0.0-release-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/2.0.0-release-prepare by this push:
     new 4baa211  cherry-pick 6716  supplement Postgre procedure sql file (#6749)
4baa211 is described below

commit 4baa211e155db114960d1788540f27132381a5e5
Author: OS <29...@users.noreply.github.com>
AuthorDate: Tue Nov 9 10:57:31 2021 +0800

    cherry-pick 6716  supplement Postgre procedure sql file (#6749)
    
    Co-authored-by: GaoTianDuo <ga...@cmss.chinamobile.com>
---
 .../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 663148a..e68781b 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 5f26e35..728b6bd 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