From 3915c4f40a1e533645483dbf51e9ffbb0c460d46 Mon Sep 17 00:00:00 2001 From: Jiajie Zhong Date: Mon, 1 Aug 2022 18:47:07 +0800 Subject: [PATCH] [fix] Make DDL work in version 3.0 * Add missing database ddl * Because postgres supported `if not exist` and `if exists` syntax so we can use bare SQL directly instead of store process --- .../sql/dolphinscheduler_postgresql.sql | 22 +- .../mysql/dolphinscheduler_ddl.sql | 22 + .../postgresql/dolphinscheduler_ddl.sql | 13 +- .../mysql/dolphinscheduler_ddl.sql | 21 + .../mysql/dolphinscheduler_dml.sql | 0 .../postgresql/dolphinscheduler_ddl.sql | 51 ++ .../postgresql/dolphinscheduler_dml.sql | 0 .../mysql/dolphinscheduler_ddl.sql | 5 +- .../mysql/dolphinscheduler_dml.sql | 2 +- .../postgresql/dolphinscheduler_ddl.sql | 31 ++ .../postgresql/dolphinscheduler_dml.sql | 2 +- .../mysql/dolphinscheduler_ddl.sql} | 0 .../mysql}/dolphinscheduler_dml.sql | 0 .../postgresql/dolphinscheduler_ddl.sql | 16 + .../postgresql/dolphinscheduler_dml.sql | 16 + .../mysql/dolphinscheduler_ddl.sql} | 30 +- .../mysql/dolphinscheduler_dml.sql | 16 + .../postgresql/dolphinscheduler_ddl.sql} | 36 +- .../postgresql/dolphinscheduler_dml.sql | 17 + .../mysql/dolphinscheduler_ddl.sql | 501 +++++++++++++++++- .../postgresql/dolphinscheduler_ddl.sql | 282 +++++----- 21 files changed, 862 insertions(+), 221 deletions(-) create mode 100644 dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.3_schema/mysql/dolphinscheduler_ddl.sql rename dolphinscheduler-dao/src/main/resources/sql/upgrade/{2.0.0_schema => 2.0.3_schema}/mysql/dolphinscheduler_dml.sql (100%) create mode 100644 dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.3_schema/postgresql/dolphinscheduler_ddl.sql rename dolphinscheduler-dao/src/main/resources/sql/upgrade/{2.0.0_schema => 2.0.3_schema}/postgresql/dolphinscheduler_dml.sql (100%) rename dolphinscheduler-dao/src/main/resources/sql/upgrade/{2.0.1_schema/mysql/dolphinscheduler_dml.sql => 2.0.5_schema/mysql/dolphinscheduler_ddl.sql} (100%) rename dolphinscheduler-dao/src/main/resources/sql/upgrade/{2.0.1_schema/postgresql => 2.0.5_schema/mysql}/dolphinscheduler_dml.sql (100%) create mode 100644 dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.5_schema/postgresql/dolphinscheduler_ddl.sql create mode 100644 dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.5_schema/postgresql/dolphinscheduler_dml.sql rename dolphinscheduler-dao/src/main/resources/sql/upgrade/{2.0.0_schema/postgresql/dolphinscheduler_ddl_post.sql => 2.0.6_schema/mysql/dolphinscheduler_ddl.sql} (55%) create mode 100644 dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.6_schema/mysql/dolphinscheduler_dml.sql rename dolphinscheduler-dao/src/main/resources/sql/upgrade/{2.0.0_schema/mysql/dolphinscheduler_ddl_post.sql => 2.0.6_schema/postgresql/dolphinscheduler_ddl.sql} (57%) create mode 100644 dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.6_schema/postgresql/dolphinscheduler_dml.sql diff --git a/dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_postgresql.sql b/dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_postgresql.sql index a4077bd90f..9bd84e1e5d 100644 --- a/dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_postgresql.sql +++ b/dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_postgresql.sql @@ -856,23 +856,6 @@ CREATE TABLE t_ds_worker_group ( CONSTRAINT name_unique UNIQUE (name) ) ; --- --- Table structure for table t_ds_worker_server --- - -DROP TABLE IF EXISTS t_ds_worker_server; -CREATE TABLE t_ds_worker_server ( - id int NOT NULL , - host varchar(45) DEFAULT NULL , - port int DEFAULT NULL , - zk_directory varchar(64) DEFAULT NULL , - res_info varchar(255) DEFAULT NULL , - create_time timestamp DEFAULT NULL , - last_heartbeat_time timestamp DEFAULT NULL , - PRIMARY KEY (id) -) ; - - DROP SEQUENCE IF EXISTS t_ds_access_token_id_sequence; CREATE SEQUENCE t_ds_access_token_id_sequence; ALTER TABLE t_ds_access_token ALTER COLUMN id SET DEFAULT NEXTVAL('t_ds_access_token_id_sequence'); @@ -961,13 +944,10 @@ ALTER TABLE t_ds_version ALTER COLUMN id SET DEFAULT NEXTVAL('t_ds_version_id_se DROP SEQUENCE IF EXISTS t_ds_worker_group_id_sequence; CREATE SEQUENCE t_ds_worker_group_id_sequence; ALTER TABLE t_ds_worker_group ALTER COLUMN id SET DEFAULT NEXTVAL('t_ds_worker_group_id_sequence'); -DROP SEQUENCE IF EXISTS t_ds_worker_server_id_sequence; -CREATE SEQUENCE t_ds_worker_server_id_sequence; -ALTER TABLE t_ds_worker_server ALTER COLUMN id SET DEFAULT NEXTVAL('t_ds_worker_server_id_sequence'); -- Records of t_ds_user?user : admin , password : dolphinscheduler123 INSERT INTO t_ds_user(user_name, user_password, user_type, email, phone, tenant_id, state, create_time, update_time, time_zone) -VALUES ('admin', '7ad2410b2f4c074479a8937a28a22b8f', '0', 'xxx@qq.com', '', '0', 1, '2018-03-27 15:48:50', '2018-10-24 17:40:22', 'Asia/Shanghai'); +VALUES ('admin', '7ad2410b2f4c074479a8937a28a22b8f', '0', 'xxx@qq.com', '', '0', 1, '2018-03-27 15:48:50', '2018-10-24 17:40:22', null); -- Records of t_ds_alertgroup, default admin warning group INSERT INTO t_ds_alertgroup(alert_instance_ids, create_user_id, group_name, description, create_time, update_time) diff --git a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.2_schema/mysql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.2_schema/mysql/dolphinscheduler_ddl.sql index e492693b8a..89d5c53c59 100644 --- a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.2_schema/mysql/dolphinscheduler_ddl.sql +++ b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.2_schema/mysql/dolphinscheduler_ddl.sql @@ -17,6 +17,7 @@ SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); + -- uc_dolphin_T_t_ds_process_instance_A_restart_time drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_process_instance_A_restart_time; delimiter d// @@ -36,3 +37,24 @@ d// delimiter ; CALL uc_dolphin_T_t_ds_process_instance_A_restart_time(); DROP PROCEDURE uc_dolphin_T_t_ds_process_instance_A_restart_time; + + +-- uc_dolphin_T_t_ds_process_task_relation_A_pc_pd_index +drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_process_task_relation_A_pc_pd_index; +delimiter d// +CREATE PROCEDURE uc_dolphin_T_t_ds_process_task_relation_A_pc_pd_index() +BEGIN + IF NOT EXISTS (SELECT 1 FROM information_schema.STATISTICS + WHERE TABLE_NAME='t_ds_process_task_relation' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND INDEX_NAME ='project_code_process_definition_code_index') + THEN +ALTER TABLE `t_ds_process_task_relation` ADD KEY `project_code_process_definition_code_index`(`project_code`,`process_definition_code`) USING BTREE; +END IF; +END; + +d// + +delimiter ; +CALL uc_dolphin_T_t_ds_process_task_relation_A_pc_pd_index(); +DROP PROCEDURE uc_dolphin_T_t_ds_process_task_relation_A_pc_pd_index; \ No newline at end of file diff --git a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.2_schema/postgresql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.2_schema/postgresql/dolphinscheduler_ddl.sql index 79be113825..75be01f0c1 100644 --- a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.2_schema/postgresql/dolphinscheduler_ddl.sql +++ b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.2_schema/postgresql/dolphinscheduler_ddl.sql @@ -23,14 +23,17 @@ CREATE OR REPLACE FUNCTION public.dolphin_update_metadata( VOLATILE PARALLEL UNSAFE AS $BODY$ DECLARE - v_schema varchar; +v_schema varchar; BEGIN ---get schema name v_schema =current_schema(); - EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_process_instance ADD COLUMN IF NOT EXISTS "restart_time" timestamp DEFAULT NULL'; - return 'Success!'; - exception when others then +EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_process_instance ADD COLUMN IF NOT EXISTS "restart_time" timestamp DEFAULT NULL'; + +EXECUTE 'CREATE INDEX IF NOT EXISTS project_code_process_definition_code_index ON ' || quote_ident(v_schema) ||'.t_ds_process_task_relation USING Btree("project_code","process_definition_code")'; + +return 'Success!'; +exception when others then ---Raise EXCEPTION '(%)',SQLERRM; return SQLERRM; END; @@ -38,4 +41,4 @@ $BODY$; select dolphin_update_metadata(); -d// +d// \ No newline at end of file diff --git a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.3_schema/mysql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.3_schema/mysql/dolphinscheduler_ddl.sql new file mode 100644 index 0000000000..a95858d936 --- /dev/null +++ b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.3_schema/mysql/dolphinscheduler_ddl.sql @@ -0,0 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +*/ + +ALTER TABLE `t_ds_task_instance` MODIFY COLUMN `task_params` longtext COMMENT 'job custom parameters' AFTER `app_link`; +ALTER TABLE `t_ds_process_task_relation` ADD KEY `idx_code` (`project_code`, `process_definition_code`) USING BTREE; +ALTER TABLE `t_ds_process_task_relation_log` ADD KEY `idx_process_code_version` (`process_definition_code`,`process_definition_version`) USING BTREE; +ALTER TABLE `t_ds_task_definition_log` ADD INDEX `idx_code_version` (`code`,`version`) USING BTREE; \ No newline at end of file diff --git a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.0_schema/mysql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.3_schema/mysql/dolphinscheduler_dml.sql similarity index 100% rename from dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.0_schema/mysql/dolphinscheduler_dml.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.3_schema/mysql/dolphinscheduler_dml.sql diff --git a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.3_schema/postgresql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.3_schema/postgresql/dolphinscheduler_ddl.sql new file mode 100644 index 0000000000..a828a1aa4d --- /dev/null +++ b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.3_schema/postgresql/dolphinscheduler_ddl.sql @@ -0,0 +1,51 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +*/ + +delimiter d// +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 + ---get schema name + v_schema =current_schema(); + +EXECUTE 'DROP INDEX IF EXISTS "idx_code_relation"'; +EXECUTE 'DROP INDEX IF EXISTS "idx_process_code_version_relation_log"'; +EXECUTE 'DROP INDEX IF EXISTS "idx_code_version_task_log"'; +EXECUTE 'CREATE INDEX IF NOT EXISTS idx_code_relation ON ' || quote_ident(v_schema) ||'.t_ds_process_task_relation USING Btree("project_code","process_definition_code")'; +EXECUTE 'CREATE INDEX IF NOT EXISTS idx_process_code_version_relation_log ON ' || quote_ident(v_schema) ||'.t_ds_process_task_relation_log USING Btree("process_definition_code","process_definition_version")'; +EXECUTE 'CREATE INDEX IF NOT EXISTS idx_code_version_task_log ON ' || quote_ident(v_schema) ||'.t_ds_task_definition_log USING Btree("code","version")'; + +EXECUTE 'ALTER TABLE t_ds_resources alter COLUMN is_directory TYPE bool using (is_directory::bool)'; +EXECUTE 'ALTER TABLE t_ds_resources alter COLUMN is_directory SET DEFAULT FALSE'; + +return 'Success!'; +exception when others then + ---Raise EXCEPTION '(%)',SQLERRM; + return SQLERRM; +END; +$BODY$; + +select dolphin_update_metadata(); + +d// \ No newline at end of file diff --git a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.0_schema/postgresql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.3_schema/postgresql/dolphinscheduler_dml.sql similarity index 100% rename from dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.0_schema/postgresql/dolphinscheduler_dml.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.3_schema/postgresql/dolphinscheduler_dml.sql diff --git a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.4_schema/mysql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.4_schema/mysql/dolphinscheduler_ddl.sql index 38964cc551..996e009dc2 100644 --- a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.4_schema/mysql/dolphinscheduler_ddl.sql +++ b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.4_schema/mysql/dolphinscheduler_ddl.sql @@ -13,4 +13,7 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. -*/ \ No newline at end of file +*/ + +ALTER TABLE `t_ds_task_instance` ADD INDEX `idx_code_version` (`task_code`, `task_definition_version`) USING BTREE; +ALTER TABLE `t_ds_task_definition_log` ADD INDEX `idx_project_code` (`project_code`) USING BTREE; \ No newline at end of file diff --git a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.4_schema/mysql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.4_schema/mysql/dolphinscheduler_dml.sql index 4a14f326b9..38964cc551 100644 --- a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.4_schema/mysql/dolphinscheduler_dml.sql +++ b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.4_schema/mysql/dolphinscheduler_dml.sql @@ -13,4 +13,4 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. -*/ +*/ \ No newline at end of file diff --git a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.4_schema/postgresql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.4_schema/postgresql/dolphinscheduler_ddl.sql index 4a14f326b9..6d5c3c0f7e 100644 --- a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.4_schema/postgresql/dolphinscheduler_ddl.sql +++ b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.4_schema/postgresql/dolphinscheduler_ddl.sql @@ -14,3 +14,34 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +delimiter d// +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 + ---get schema name + v_schema =current_schema(); + +EXECUTE 'DROP INDEX IF EXISTS "idx_task_definition_log_project_code"'; +EXECUTE 'CREATE INDEX IF NOT EXISTS idx_task_definition_log_project_code ON ' || quote_ident(v_schema) ||'.t_ds_task_definition_log USING Btree("project_code")'; + +EXECUTE 'DROP INDEX IF EXISTS "idx_task_instance_code_version"'; +EXECUTE 'CREATE INDEX IF NOT EXISTS idx_task_instance_code_version ON' || quote_ident(v_schema) ||'.t_ds_task_instance USING Btree("task_code","task_definition_version")'; + +return 'Success!'; +exception when others then + ---Raise EXCEPTION '(%)',SQLERRM; + return SQLERRM; +END; +$BODY$; + +select dolphin_update_metadata(); + +d// \ No newline at end of file diff --git a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.4_schema/postgresql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.4_schema/postgresql/dolphinscheduler_dml.sql index 4a14f326b9..38964cc551 100644 --- a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.4_schema/postgresql/dolphinscheduler_dml.sql +++ b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.4_schema/postgresql/dolphinscheduler_dml.sql @@ -13,4 +13,4 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. -*/ +*/ \ No newline at end of file diff --git a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.1_schema/mysql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.5_schema/mysql/dolphinscheduler_ddl.sql similarity index 100% rename from dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.1_schema/mysql/dolphinscheduler_dml.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.5_schema/mysql/dolphinscheduler_ddl.sql diff --git a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.1_schema/postgresql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.5_schema/mysql/dolphinscheduler_dml.sql similarity index 100% rename from dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.1_schema/postgresql/dolphinscheduler_dml.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.5_schema/mysql/dolphinscheduler_dml.sql diff --git a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.5_schema/postgresql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.5_schema/postgresql/dolphinscheduler_ddl.sql new file mode 100644 index 0000000000..4a14f326b9 --- /dev/null +++ b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.5_schema/postgresql/dolphinscheduler_ddl.sql @@ -0,0 +1,16 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +*/ diff --git a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.5_schema/postgresql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.5_schema/postgresql/dolphinscheduler_dml.sql new file mode 100644 index 0000000000..38964cc551 --- /dev/null +++ b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.5_schema/postgresql/dolphinscheduler_dml.sql @@ -0,0 +1,16 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +*/ \ No newline at end of file diff --git a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.0_schema/postgresql/dolphinscheduler_ddl_post.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.6_schema/mysql/dolphinscheduler_ddl.sql similarity index 55% rename from dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.0_schema/postgresql/dolphinscheduler_ddl_post.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.6_schema/mysql/dolphinscheduler_ddl.sql index 8e2bbe601c..45f8acd4da 100644 --- a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.0_schema/postgresql/dolphinscheduler_ddl_post.sql +++ b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.6_schema/mysql/dolphinscheduler_ddl.sql @@ -15,12 +15,24 @@ * limitations under the License. */ -ALTER TABLE "t_ds_process_definition" DROP CONSTRAINT "t_ds_process_definition_pkey"; -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"; +SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); + +-- uc_dolphin_T_t_ds_resources_R_full_name +drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_resources_R_full_name; +delimiter d// +CREATE PROCEDURE uc_dolphin_T_t_ds_resources_R_full_name() +BEGIN + IF EXISTS (SELECT 1 FROM information_schema.COLUMNS + WHERE TABLE_NAME='t_ds_resources' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND COLUMN_NAME ='full_name') + THEN +ALTER TABLE t_ds_resources MODIFY COLUMN `full_name` varchar(128); +END IF; +END; + +d// + +delimiter ; +CALL uc_dolphin_T_t_ds_resources_R_full_name; +DROP PROCEDURE uc_dolphin_T_t_ds_resources_R_full_name; diff --git a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.6_schema/mysql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.6_schema/mysql/dolphinscheduler_dml.sql new file mode 100644 index 0000000000..4a14f326b9 --- /dev/null +++ b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.6_schema/mysql/dolphinscheduler_dml.sql @@ -0,0 +1,16 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +*/ diff --git a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.0_schema/mysql/dolphinscheduler_ddl_post.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.6_schema/postgresql/dolphinscheduler_ddl.sql similarity index 57% rename from dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.0_schema/mysql/dolphinscheduler_ddl_post.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.6_schema/postgresql/dolphinscheduler_ddl.sql index dfde96209e..14a20fcd8e 100644 --- a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.0_schema/mysql/dolphinscheduler_ddl_post.sql +++ b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.6_schema/postgresql/dolphinscheduler_ddl.sql @@ -15,12 +15,30 @@ * limitations under the License. */ -alter table t_ds_process_definition drop primary key, ADD PRIMARY KEY (`id`,`code`); -ALTER TABLE t_ds_process_definition drop KEY `process_definition_unique`; -ALTER TABLE t_ds_process_definition drop KEY `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 +delimiter d// +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 + ---get schema name + v_schema =current_schema(); + + --- alter column + EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_resources ALTER COLUMN full_name Type varchar(128)'; + + return 'Success!'; + exception when others then + ---Raise EXCEPTION '(%)',SQLERRM; + return SQLERRM; +END; +$BODY$; + +select dolphin_update_metadata(); + +d// \ No newline at end of file diff --git a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.6_schema/postgresql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.6_schema/postgresql/dolphinscheduler_dml.sql new file mode 100644 index 0000000000..5f26e3515d --- /dev/null +++ b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.6_schema/postgresql/dolphinscheduler_dml.sql @@ -0,0 +1,17 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +*/ + diff --git a/dolphinscheduler-dao/src/main/resources/sql/upgrade/3.0.0_schema/mysql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/3.0.0_schema/mysql/dolphinscheduler_ddl.sql index 44ad629814..9a19da50a6 100644 --- a/dolphinscheduler-dao/src/main/resources/sql/upgrade/3.0.0_schema/mysql/dolphinscheduler_ddl.sql +++ b/dolphinscheduler-dao/src/main/resources/sql/upgrade/3.0.0_schema/mysql/dolphinscheduler_ddl.sql @@ -17,26 +17,6 @@ SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); --- uc_dolphin_T_t_ds_resources_R_full_name -drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_resources_R_full_name; -delimiter d// -CREATE PROCEDURE uc_dolphin_T_t_ds_resources_R_full_name() -BEGIN - IF EXISTS (SELECT 1 FROM information_schema.COLUMNS - WHERE TABLE_NAME='t_ds_resources' - AND TABLE_SCHEMA=(SELECT DATABASE()) - AND COLUMN_NAME ='full_name') - THEN -ALTER TABLE t_ds_resources MODIFY COLUMN `full_name` varchar(128); -END IF; -END; - -d// - -delimiter ; -CALL uc_dolphin_T_t_ds_resources_R_full_name; -DROP PROCEDURE uc_dolphin_T_t_ds_resources_R_full_name; - -- uc_dolphin_T_t_ds_alert_R_sign drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_alert_R_sign; delimiter d// @@ -59,39 +39,443 @@ CALL uc_dolphin_T_t_ds_alert_R_sign; DROP PROCEDURE uc_dolphin_T_t_ds_alert_R_sign; -- add unique key to t_ds_relation_project_user -ALTER TABLE t_ds_relation_project_user ADD UNIQUE KEY uniq_uid_pid(user_id,project_id); +drop PROCEDURE if EXISTS add_t_ds_relation_project_user_uk_uniq_uid_pid; +delimiter d// +CREATE PROCEDURE add_t_ds_relation_project_user_uk_uniq_uid_pid() +BEGIN + IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS + WHERE TABLE_NAME='t_ds_relation_project_user' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND INDEX_NAME='uniq_uid_pid') + THEN +ALTER TABLE t_ds_relation_project_user ADD UNIQUE KEY uniq_uid_pid(user_id, project_id); +END IF; +END; + +d// + +delimiter ; +CALL add_t_ds_relation_project_user_uk_uniq_uid_pid; +DROP PROCEDURE add_t_ds_relation_project_user_uk_uniq_uid_pid; + +-- drop t_ds_relation_project_user key user_id_index +drop PROCEDURE if EXISTS drop_t_ds_relation_project_user_key_user_id_index; +delimiter d// +CREATE PROCEDURE drop_t_ds_relation_project_user_key_user_id_index() +BEGIN + IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS + WHERE TABLE_NAME='t_ds_relation_project_user' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND INDEX_NAME='user_id_index') + THEN +ALTER TABLE `t_ds_relation_project_user` DROP KEY `user_id_index`; +END IF; +END; +d// +delimiter ; +CALL drop_t_ds_relation_project_user_key_user_id_index; +DROP PROCEDURE drop_t_ds_relation_project_user_key_user_id_index; -- add unique key to t_ds_project +drop PROCEDURE if EXISTS add_t_ds_project_uk_unique_name; +delimiter d// +CREATE PROCEDURE add_t_ds_project_uk_unique_name() +BEGIN + IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS + WHERE TABLE_NAME='t_ds_project' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND INDEX_NAME='unique_name') + THEN ALTER TABLE t_ds_project ADD UNIQUE KEY unique_name(name); +END IF; +END; +d// +delimiter ; +CALL add_t_ds_project_uk_unique_name; +DROP PROCEDURE add_t_ds_project_uk_unique_name; + +drop PROCEDURE if EXISTS add_t_ds_project_uk_unique_code; +delimiter d// +CREATE PROCEDURE add_t_ds_project_uk_unique_code() +BEGIN + IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS + WHERE TABLE_NAME='t_ds_project' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND INDEX_NAME='unique_code') + THEN ALTER TABLE t_ds_project ADD UNIQUE KEY unique_code(code); +END IF; +END; +d// +delimiter ; +CALL add_t_ds_project_uk_unique_code; +DROP PROCEDURE add_t_ds_project_uk_unique_code; -- add unique key to t_ds_queue +drop PROCEDURE if EXISTS add_t_ds_queue_uk_unique_queue_name; +delimiter d// +CREATE PROCEDURE add_t_ds_queue_uk_unique_queue_name() +BEGIN + IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS + WHERE TABLE_NAME='t_ds_queue' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND INDEX_NAME='unique_queue_name') + THEN ALTER TABLE t_ds_queue ADD UNIQUE KEY unique_queue_name(queue_name); +END IF; +END; +d// +delimiter ; +CALL add_t_ds_queue_uk_unique_queue_name; +DROP PROCEDURE add_t_ds_queue_uk_unique_queue_name; -- add unique key to t_ds_udfs +drop PROCEDURE if EXISTS add_t_ds_udfs_uk_unique_func_name; +delimiter d// +CREATE PROCEDURE add_t_ds_udfs_uk_unique_func_name() +BEGIN + IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS + WHERE TABLE_NAME='t_ds_udfs' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND INDEX_NAME='unique_func_name') + THEN ALTER TABLE t_ds_udfs ADD UNIQUE KEY unique_func_name(func_name); +END IF; +END; +d// +delimiter ; +CALL add_t_ds_udfs_uk_unique_func_name; +DROP PROCEDURE add_t_ds_udfs_uk_unique_func_name; -- add unique key to t_ds_tenant +drop PROCEDURE if EXISTS add_t_ds_tenant_uk_unique_tenant_code; +delimiter d// +CREATE PROCEDURE add_t_ds_tenant_uk_unique_tenant_code() +BEGIN + IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS + WHERE TABLE_NAME='t_ds_tenant' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND INDEX_NAME='unique_tenant_code') + THEN ALTER TABLE t_ds_tenant ADD UNIQUE KEY unique_tenant_code(tenant_code); +END IF; +END; +d// +delimiter ; +CALL add_t_ds_tenant_uk_unique_tenant_code; +DROP PROCEDURE add_t_ds_tenant_uk_unique_tenant_code; +-- ALTER TABLE `t_ds_task_instance` ADD INDEX `idx_code_version` (`task_code`, `task_definition_version`) USING BTREE; +drop PROCEDURE if EXISTS add_t_ds_task_instance_uk_idx_code_version; +delimiter d// +CREATE PROCEDURE add_t_ds_task_instance_uk_idx_code_version() +BEGIN + IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS + WHERE TABLE_NAME='t_ds_task_instance' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND INDEX_NAME='idx_code_version') + THEN ALTER TABLE `t_ds_task_instance` ADD INDEX `idx_code_version` (`task_code`, `task_definition_version`) USING BTREE; +END IF; +END; +d// +delimiter ; +CALL add_t_ds_task_instance_uk_idx_code_version; +DROP PROCEDURE add_t_ds_task_instance_uk_idx_code_version; + +-- ALTER TABLE `t_ds_task_instance` MODIFY COLUMN `task_params` longtext COMMENT 'job custom parameters' AFTER `app_link`; +drop PROCEDURE if EXISTS modify_t_ds_task_instance_col_task_params; +delimiter d// +CREATE PROCEDURE modify_t_ds_task_instance_col_task_params() +BEGIN + IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS + WHERE TABLE_NAME='t_ds_task_instance' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND COLUMN_NAME ='task_params') + THEN ALTER TABLE `t_ds_task_instance` MODIFY COLUMN `task_params` longtext COMMENT 'job custom parameters' AFTER `app_link`; +END IF; +END; +d// +delimiter ; +CALL modify_t_ds_task_instance_col_task_params; +DROP PROCEDURE modify_t_ds_task_instance_col_task_params; + +-- ALTER TABLE `t_ds_task_instance` ADD COLUMN `task_group_id` int(11) DEFAULT NULL COMMENT 'task group id'; +drop PROCEDURE if EXISTS add_t_ds_task_instance_col_task_group_id; +delimiter d// +CREATE PROCEDURE add_t_ds_task_instance_col_task_group_id() +BEGIN + IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS + WHERE TABLE_NAME='t_ds_task_instance' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND COLUMN_NAME ='task_group_id') + THEN +ALTER TABLE `t_ds_task_instance` ADD COLUMN `task_group_id` int(11) DEFAULT NULL COMMENT 'task group id' after `var_pool`; +END IF; +END; +d// +delimiter ; +CALL add_t_ds_task_instance_col_task_group_id; +DROP PROCEDURE add_t_ds_task_instance_col_task_group_id; + +-- ALTER TABLE `t_ds_process_task_relation` ADD KEY `idx_code` (`project_code`, `process_definition_code`) USING BTREE; +drop PROCEDURE if EXISTS add_t_ds_process_task_relation_key_idx_code; +delimiter d// +CREATE PROCEDURE add_t_ds_process_task_relation_key_idx_code() +BEGIN + IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS + WHERE TABLE_NAME='t_ds_process_task_relation' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND INDEX_NAME='idx_code') + THEN ALTER TABLE `t_ds_process_task_relation` ADD KEY `idx_code` (`project_code`, `process_definition_code`) USING BTREE; +END IF; +END; +d// +delimiter ; +CALL add_t_ds_process_task_relation_key_idx_code; +DROP PROCEDURE add_t_ds_process_task_relation_key_idx_code; + +-- ALTER TABLE `t_ds_process_task_relation` ADD KEY `idx_pre_task_code_version` (`pre_task_code`,`pre_task_version`); +drop PROCEDURE if EXISTS add_t_ds_process_task_relation_key_idx_pre_task_code_version; +delimiter d// +CREATE PROCEDURE add_t_ds_process_task_relation_key_idx_pre_task_code_version() +BEGIN + IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS + WHERE TABLE_NAME='t_ds_process_task_relation' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND INDEX_NAME='idx_pre_task_code_version') + THEN ALTER TABLE `t_ds_process_task_relation` ADD KEY `idx_pre_task_code_version` (`pre_task_code`,`pre_task_version`); +END IF; +END; +d// +delimiter ; +CALL add_t_ds_process_task_relation_key_idx_pre_task_code_version; +DROP PROCEDURE add_t_ds_process_task_relation_key_idx_pre_task_code_version; + +-- ALTER TABLE `t_ds_process_task_relation` ADD KEY `idx_post_task_code_version` (`post_task_code`,`post_task_version`); +drop PROCEDURE if EXISTS add_t_ds_process_task_relation_key_idx_post_task_code_version; +delimiter d// +CREATE PROCEDURE add_t_ds_process_task_relation_key_idx_post_task_code_version() +BEGIN + IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS + WHERE TABLE_NAME='t_ds_process_task_relation' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND INDEX_NAME='idx_post_task_code_version') + THEN ALTER TABLE `t_ds_process_task_relation` ADD KEY `idx_post_task_code_version` (`post_task_code`,`post_task_version`); +END IF; +END; +d// +delimiter ; +CALL add_t_ds_process_task_relation_key_idx_post_task_code_version; +DROP PROCEDURE add_t_ds_process_task_relation_key_idx_post_task_code_version; + +-- ALTER TABLE `t_ds_process_task_relation_log` ADD KEY `idx_process_code_version` (`process_definition_code`,`process_definition_version`) USING BTREE; +drop PROCEDURE if EXISTS add_t_ds_process_task_relation_key_idx_process_code_version; +delimiter d// +CREATE PROCEDURE add_t_ds_process_task_relation_key_idx_process_code_version() +BEGIN + IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS + WHERE TABLE_NAME='t_ds_process_task_relation_log' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND INDEX_NAME='idx_process_code_version') + THEN ALTER TABLE `t_ds_process_task_relation_log` ADD KEY `idx_process_code_version` (`process_definition_code`,`process_definition_version`) USING BTREE; +END IF; +END; +d// +delimiter ; +CALL add_t_ds_process_task_relation_key_idx_process_code_version; +DROP PROCEDURE add_t_ds_process_task_relation_key_idx_process_code_version; +-- ALTER TABLE `t_ds_task_definition_log` ADD INDEX `idx_project_code` (`project_code`) USING BTREE; +drop PROCEDURE if EXISTS add_t_ds_task_definition_log_key_idx_process_code_version; +delimiter d// +CREATE PROCEDURE add_t_ds_task_definition_log_key_idx_process_code_version() +BEGIN + IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS + WHERE TABLE_NAME='t_ds_task_definition_log' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND INDEX_NAME='idx_project_code') + THEN ALTER TABLE `t_ds_task_definition_log` ADD INDEX `idx_project_code` (`project_code`) USING BTREE; +END IF; +END; +d// +delimiter ; +CALL add_t_ds_task_definition_log_key_idx_process_code_version; +DROP PROCEDURE add_t_ds_task_definition_log_key_idx_process_code_version; + +-- ALTER TABLE `t_ds_task_definition_log` ADD INDEX `idx_code_version` (`code`,`version`) USING BTREE; +drop PROCEDURE if EXISTS add_t_ds_task_definition_log_key_idx_code_version; +delimiter d// +CREATE PROCEDURE add_t_ds_task_definition_log_key_idx_code_version() +BEGIN + IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS + WHERE TABLE_NAME='t_ds_task_definition_log' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND INDEX_NAME='idx_code_version') + THEN ALTER TABLE `t_ds_task_definition_log` ADD INDEX `idx_code_version` (`code`,`version`) USING BTREE; +END IF; +END; +d// +delimiter ; +CALL add_t_ds_task_definition_log_key_idx_code_version; +DROP PROCEDURE add_t_ds_task_definition_log_key_idx_code_version; + +-- alter table t_ds_task_definition_log add `task_group_id` int(11) DEFAULT NULL COMMENT 'task group id' AFTER `resource_ids`; +drop PROCEDURE if EXISTS add_t_ds_task_definition_log_col_task_group_id; +delimiter d// +CREATE PROCEDURE add_t_ds_task_definition_log_col_task_group_id() +BEGIN + IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS + WHERE TABLE_NAME='t_ds_task_definition_log' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND COLUMN_NAME='task_group_id') + THEN alter table t_ds_task_definition_log add `task_group_id` int(11) DEFAULT NULL COMMENT 'task group id' AFTER `resource_ids`; -alter table t_ds_task_definition_log add `task_group_priority` int(11) DEFAULT NULL COMMENT 'task group id' AFTER `task_group_id`; -alter table t_ds_task_definition add `task_group_id` int(11) DEFAULT NULL COMMENT 'task group id' AFTER `resource_ids`; -alter table t_ds_task_definition add `task_group_priority` int(11) DEFAULT '0' COMMENT 'task group id' AFTER `task_group_id`; +END IF; +END; +d// +delimiter ; +CALL add_t_ds_task_definition_log_col_task_group_id; +DROP PROCEDURE add_t_ds_task_definition_log_col_task_group_id; + +-- alter table t_ds_task_definition_log add `task_group_id` int(11) DEFAULT NULL COMMENT 'task group id' AFTER `resource_ids`; +drop PROCEDURE if EXISTS add_t_ds_task_definition_col_task_group_id; +delimiter d// +CREATE PROCEDURE add_t_ds_task_definition_col_task_group_id() +BEGIN + IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS + WHERE TABLE_NAME='t_ds_task_definition' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND COLUMN_NAME='task_group_id') + THEN +alter table t_ds_task_definition add `task_group_id` int DEFAULT NULL COMMENT 'task group id'; +END IF; +END; +d// +delimiter ; +CALL add_t_ds_task_definition_col_task_group_id; +DROP PROCEDURE add_t_ds_task_definition_col_task_group_id; + +-- alter table t_ds_task_definition_log add `task_group_priority` int(11) DEFAULT NULL COMMENT 'task group id' AFTER `task_group_id`; +drop PROCEDURE if EXISTS add_t_ds_task_definition_log_col_task_group_priority; +delimiter d// +CREATE PROCEDURE add_t_ds_task_definition_log_col_task_group_priority() +BEGIN + IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS + WHERE TABLE_NAME='t_ds_task_definition_log' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND COLUMN_NAME='task_group_priority') + THEN +alter table t_ds_task_definition_log add `task_group_priority` tinyint DEFAULT '0' COMMENT 'task group priority' AFTER `task_group_id`; +END IF; +END; +d// +delimiter ; +CALL add_t_ds_task_definition_log_col_task_group_priority; +DROP PROCEDURE add_t_ds_task_definition_log_col_task_group_priority; +-- alter table t_ds_task_definition add `task_group_priority` int(11) DEFAULT '0' COMMENT 'task group id' AFTER `task_group_id`; +drop PROCEDURE if EXISTS add_t_ds_task_definition_col_task_group_priority; +delimiter d// +CREATE PROCEDURE add_t_ds_task_definition_col_task_group_priority() +BEGIN + IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS + WHERE TABLE_NAME='t_ds_task_definition' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND COLUMN_NAME='task_group_priority') + THEN +alter table t_ds_task_definition add `task_group_priority` tinyint DEFAULT '0' COMMENT 'task group priority' AFTER `task_group_id`; +END IF; +END; +d// +delimiter ; +CALL add_t_ds_task_definition_col_task_group_priority; +DROP PROCEDURE add_t_ds_task_definition_col_task_group_priority; + +-- ALTER TABLE `t_ds_user` ADD COLUMN `time_zone` varchar(32) DEFAULT NULL COMMENT 'time zone'; +drop PROCEDURE if EXISTS add_t_ds_user_col_time_zone; +delimiter d// +CREATE PROCEDURE add_t_ds_user_col_time_zone() +BEGIN + IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS + WHERE TABLE_NAME='t_ds_user' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND COLUMN_NAME='t_ds_user') + THEN ALTER TABLE `t_ds_user` ADD COLUMN `time_zone` varchar(32) DEFAULT NULL COMMENT 'time zone'; +END IF; +END; +d// +delimiter ; +CALL add_t_ds_user_col_time_zone; +DROP PROCEDURE add_t_ds_user_col_time_zone; + +-- ALTER TABLE `t_ds_alert` ADD COLUMN `warning_type` tinyint(4) DEFAULT '2' COMMENT '1 process is successfully, 2 process/task is failed'; +drop PROCEDURE if EXISTS add_t_ds_alert_col_warning_type; +delimiter d// +CREATE PROCEDURE add_t_ds_alert_col_warning_type() +BEGIN + IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS + WHERE TABLE_NAME='t_ds_alert' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND COLUMN_NAME='warning_type') + THEN ALTER TABLE `t_ds_alert` ADD COLUMN `warning_type` tinyint(4) DEFAULT '2' COMMENT '1 process is successfully, 2 process/task is failed'; +END IF; +END; +d// +delimiter ; +CALL add_t_ds_alert_col_warning_type; +DROP PROCEDURE add_t_ds_alert_col_warning_type; +-- ALTER TABLE `t_ds_alert` ADD INDEX `idx_status` (`alert_status`) USING BTREE; +drop PROCEDURE if EXISTS add_t_ds_alert_idx_idx_status; +delimiter d// +CREATE PROCEDURE add_t_ds_alert_idx_idx_status() +BEGIN + IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS + WHERE TABLE_NAME='t_ds_alert' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND INDEX_NAME='idx_status') + THEN ALTER TABLE `t_ds_alert` ADD INDEX `idx_status` (`alert_status`) USING BTREE; +END IF; +END; +d// +delimiter ; +CALL add_t_ds_alert_idx_idx_status; +DROP PROCEDURE add_t_ds_alert_idx_idx_status; + +-- ALTER TABLE `t_ds_alert` ADD COLUMN `project_code` bigint DEFAULT NULL COMMENT 'project_code'; +-- ALTER TABLE `t_ds_alert` ADD COLUMN `process_definition_code` bigint DEFAULT NULL COMMENT 'process_definition_code'; +-- ALTER TABLE `t_ds_alert` ADD COLUMN `process_instance_id` int DEFAULT NULL COMMENT 'process_instance_id'; +-- ALTER TABLE `t_ds_alert` ADD COLUMN `alert_type` int DEFAULT NULL COMMENT 'alert_type'; +drop PROCEDURE if EXISTS add_t_ds_alert_col_project_code; +delimiter d// +CREATE PROCEDURE add_t_ds_alert_col_project_code() +BEGIN + IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS + WHERE TABLE_NAME='t_ds_alert' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND COLUMN_NAME='project_code') + THEN +ALTER TABLE `t_ds_alert` ADD COLUMN `project_code` bigint DEFAULT NULL COMMENT 'project_code'; +ALTER TABLE `t_ds_alert` ADD COLUMN `process_definition_code` bigint DEFAULT NULL COMMENT 'process_definition_code'; +ALTER TABLE `t_ds_alert` ADD COLUMN `process_instance_id` int DEFAULT NULL COMMENT 'process_instance_id'; +ALTER TABLE `t_ds_alert` ADD COLUMN `alert_type` int DEFAULT NULL COMMENT 'alert_type'; +END IF; +END; +d// +delimiter ; +CALL add_t_ds_alert_col_project_code; +DROP PROCEDURE add_t_ds_alert_col_project_code; -- -- Table structure for table `t_ds_dq_comparison_type` @@ -282,6 +666,71 @@ CREATE TABLE `t_ds_relation_namespace_user` ( `create_time` datetime DEFAULT NULL COMMENT 'create time', `update_time` datetime DEFAULT NULL COMMENT 'update time', PRIMARY KEY (`id`), - KEY `user_id_index` (`user_id`), UNIQUE KEY `namespace_user_unique` (`user_id`,`namespace_id`) -) ENGINE=InnoDB AUTO_INCREMENT= 1 DEFAULT CHARSET= utf8; \ No newline at end of file +) ENGINE=InnoDB AUTO_INCREMENT= 1 DEFAULT CHARSET= utf8; + +-- ---------------------------- +-- Table structure for t_ds_alert_send_status +-- ---------------------------- +DROP TABLE IF EXISTS t_ds_alert_send_status; +CREATE TABLE t_ds_alert_send_status ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `alert_id` int(11) NOT NULL, + `alert_plugin_instance_id` int(11) NOT NULL, + `send_status` tinyint(4) DEFAULT '0', + `log` text, + `create_time` datetime DEFAULT NULL COMMENT 'create time', + PRIMARY KEY (`id`), + UNIQUE KEY `alert_send_status_unique` (`alert_id`,`alert_plugin_instance_id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for t_ds_audit_log +-- ---------------------------- +DROP TABLE IF EXISTS `t_ds_audit_log`; +CREATE TABLE `t_ds_audit_log` ( + `id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT'key', + `user_id` int(11) NOT NULL COMMENT 'user id', + `resource_type` int(11) NOT NULL COMMENT 'resource type', + `operation` int(11) NOT NULL COMMENT 'operation', + `time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT 'create time', + `resource_id` int(11) NULL DEFAULT NULL COMMENT 'resource id', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT= 1 DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for t_ds_task_group +-- ---------------------------- +DROP TABLE IF EXISTS `t_ds_task_group`; +CREATE TABLE `t_ds_task_group` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT'key', + `name` varchar(100) DEFAULT NULL COMMENT 'task_group name', + `description` varchar(200) DEFAULT NULL, + `group_size` int (11) NOT NULL COMMENT'group size', + `use_size` int (11) DEFAULT '0' COMMENT 'used size', + `user_id` int(11) DEFAULT NULL COMMENT 'creator id', + `project_code` bigint(20) DEFAULT 0 COMMENT 'project code', + `status` tinyint(4) DEFAULT '1' COMMENT '0 not available, 1 available', + `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP, + `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY(`id`) +) ENGINE= INNODB AUTO_INCREMENT= 1 DEFAULT CHARSET= utf8; + +-- ---------------------------- +-- Table structure for t_ds_task_group_queue +-- ---------------------------- +DROP TABLE IF EXISTS `t_ds_task_group_queue`; +CREATE TABLE `t_ds_task_group_queue` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT'key', + `task_id` int(11) DEFAULT NULL COMMENT 'taskintanceid', + `task_name` varchar(100) DEFAULT NULL COMMENT 'TaskInstance name', + `group_id` int(11) DEFAULT NULL COMMENT 'taskGroup id', + `process_id` int(11) DEFAULT NULL COMMENT 'processInstace id', + `priority` int(8) DEFAULT '0' COMMENT 'priority', + `status` tinyint(4) DEFAULT '-1' COMMENT '-1: waiting 1: running 2: finished', + `force_start` tinyint(4) DEFAULT '0' COMMENT 'is force start 0 NO ,1 YES', + `in_queue` tinyint(4) DEFAULT '0' COMMENT 'ready to get the queue by other task finish 0 NO ,1 YES', + `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP, + `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY( `id` ) +)ENGINE= INNODB AUTO_INCREMENT= 1 DEFAULT CHARSET= utf8; \ No newline at end of file diff --git a/dolphinscheduler-dao/src/main/resources/sql/upgrade/3.0.0_schema/postgresql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/3.0.0_schema/postgresql/dolphinscheduler_ddl.sql index 83e1f6eb26..fa0d864f08 100644 --- a/dolphinscheduler-dao/src/main/resources/sql/upgrade/3.0.0_schema/postgresql/dolphinscheduler_ddl.sql +++ b/dolphinscheduler-dao/src/main/resources/sql/upgrade/3.0.0_schema/postgresql/dolphinscheduler_ddl.sql @@ -15,101 +15,70 @@ * limitations under the License. */ -delimiter d// -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 - ---get schema name - v_schema =current_schema(); - - --- alter column -EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_resources ALTER COLUMN full_name Type varchar(128)'; - ---- add column -EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_alert ADD COLUMN IF NOT EXISTS sign varchar(40) NOT NULL DEFAULT '''' '; -EXECUTE 'comment on column ' || quote_ident(v_schema) ||'.t_ds_alert.sign is ''sign=sha1(content)'''; - -return 'Success!'; -exception when others then - ---Raise EXCEPTION '(%)',SQLERRM; - return SQLERRM; -END; -$BODY$; - -select dolphin_update_metadata(); - -d// - --- add unique key to t_ds_relation_project_user -CREATE UNIQUE INDEX t_ds_relation_project_user_un - on t_ds_relation_project_user (user_id, project_id); - --- add unique key to t_ds_project -CREATE UNIQUE INDEX unique_name on t_ds_project (name); -CREATE UNIQUE INDEX unique_code on t_ds_project (code); - --- add unique key to t_ds_queue -CREATE UNIQUE INDEX unique_queue_name on t_ds_queue (queue_name); - --- add unique key to t_ds_udfs -CREATE UNIQUE INDEX unique_func_name on t_ds_udfs (func_name); - --- add unique key to t_ds_tenant -CREATE UNIQUE INDEX unique_tenant_code on t_ds_tenant (tenant_code); - -delimiter d// -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 - ---get schema name - v_schema =current_schema(); - -EXECUTE 'DROP INDEX IF EXISTS "process_task_relation_idx_project_code_process_definition_code"'; -EXECUTE 'CREATE INDEX IF NOT EXISTS process_task_relation_idx_project_code_process_definition_code ON ' || quote_ident(v_schema) ||'.t_ds_process_task_relation USING Btree("project_code","process_definition_code")'; - -EXECUTE 'DROP INDEX IF EXISTS "process_task_relation_idx_pre_task_code_version"'; -EXECUTE 'CREATE INDEX IF NOT EXISTS process_task_relation_idx_pre_task_code_version ON ' || quote_ident(v_schema) ||'.t_ds_process_task_relation USING Btree("pre_task_code","pre_task_version")'; - -EXECUTE 'DROP INDEX IF EXISTS "process_task_relation_idx_post_task_code_version"'; -EXECUTE 'CREATE INDEX IF NOT EXISTS process_task_relation_idx_post_task_code_version ON ' || quote_ident(v_schema) ||'.t_ds_process_task_relation USING Btree("post_task_code","post_task_version")'; - -EXECUTE 'DROP INDEX IF EXISTS "process_task_relation_log_idx_project_code_process_definition_code"'; -EXECUTE 'CREATE INDEX IF NOT EXISTS process_task_relation_log_idx_project_code_process_definition_code ON ' || quote_ident(v_schema) ||'.t_ds_process_task_relation_log USING Btree("project_code","process_definition_code")'; - -EXECUTE 'DROP INDEX IF EXISTS "idx_task_definition_log_code_version"'; -EXECUTE 'CREATE INDEX IF NOT EXISTS idx_task_definition_log_code_version ON ' || quote_ident(v_schema) ||'.t_ds_task_definition_log USING Btree("code","version")'; - -EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_user ADD COLUMN IF NOT EXISTS "time_zone" varchar(32) DEFAULT NULL'; - -EXECUTE 'ALTER TABLE ' || quote_ident(v_schema) ||'.t_ds_alert ADD COLUMN IF NOT EXISTS "warning_type" int DEFAULT 2'; - -EXECUTE 'CREATE TABLE IF NOT EXISTS' || quote_ident(v_schema) ||'."t_ds_dq_comparison_type" ( - id serial NOT NULL, - "type" varchar NOT NULL, - execute_sql varchar NULL, - output_table varchar NULL, - "name" varchar NULL, - create_time timestamp NULL, - update_time timestamp NULL, - is_inner_source bool NULL, - CONSTRAINT t_ds_dq_comparison_type_pk PRIMARY KEY (id) - )'; - -EXECUTE 'CREATE TABLE IF NOT EXISTS' || quote_ident(v_schema) ||'."t_ds_dq_execute_result" ( +--- Drop table: Some table forget delete in the past, should be delete in version 1.2.0 +DROP TABLE IF EXISTS t_ds_worker_server; + +--- Add CONSTRAINT key +ALTER TABLE t_ds_task_instance DROP CONSTRAINT IF EXISTS foreign_key_instance_id; +ALTER TABLE t_ds_task_instance ADD CONSTRAINT foreign_key_instance_id FOREIGN KEY(process_instance_id) REFERENCES t_ds_process_instance(id) ON DELETE CASCADE; + +--- Add column +ALTER TABLE t_ds_alert ADD COLUMN IF NOT EXISTS sign varchar(40) NOT NULL DEFAULT ''; +ALTER TABLE t_ds_alert ADD COLUMN IF NOT EXISTS "warning_type" int DEFAULT 2; +ALTER TABLE t_ds_user ADD COLUMN IF NOT EXISTS "time_zone" varchar(32) DEFAULT NULL; +ALTER TABLE t_ds_task_instance ADD COLUMN IF NOT EXISTS "task_group_id" int DEFAULT NULL; +ALTER TABLE t_ds_task_definition ADD COLUMN IF NOT EXISTS "task_group_id" int DEFAULT NULL; +ALTER TABLE t_ds_task_definition ADD COLUMN IF NOT EXISTS "task_group_priority" int DEFAULT '0'; +ALTER TABLE t_ds_task_definition_log ADD COLUMN IF NOT EXISTS "task_group_id" int DEFAULT NULL; +ALTER TABLE t_ds_task_definition_log ADD COLUMN IF NOT EXISTS "task_group_priority" int DEFAULT '0'; +ALTER TABLE t_ds_alert ADD COLUMN IF NOT EXISTS "project_code" bigint DEFAULT NULL; +ALTER TABLE t_ds_alert ADD COLUMN IF NOT EXISTS "process_definition_code" bigint DEFAULT NULL; +ALTER TABLE t_ds_alert ADD COLUMN IF NOT EXISTS "process_instance_id" int DEFAULT NULL; +ALTER TABLE t_ds_alert ADD COLUMN IF NOT EXISTS "alert_type" int DEFAULT NULL; + +--- Add unique key +CREATE UNIQUE INDEX IF NOT EXISTS t_ds_relation_project_user_un on t_ds_relation_project_user (user_id, project_id); +CREATE UNIQUE INDEX IF NOT EXISTS unique_name on t_ds_project (name); +CREATE UNIQUE INDEX IF NOT EXISTS unique_code on t_ds_project (code); +CREATE UNIQUE INDEX IF NOT EXISTS unique_queue_name on t_ds_queue (queue_name); +CREATE UNIQUE INDEX IF NOT EXISTS unique_func_name on t_ds_udfs (func_name); +CREATE UNIQUE INDEX IF NOT EXISTS unique_tenant_code on t_ds_tenant (tenant_code); + +--- Create index +DROP INDEX IF EXISTS "idx_task_definition_log_project_code"; +CREATE INDEX IF NOT EXISTS idx_task_definition_log_project_code ON t_ds_task_definition_log USING Btree("project_code"); +DROP INDEX IF EXISTS "idx_task_instance_code_version"; +CREATE INDEX IF NOT EXISTS idx_task_instance_code_version ON t_ds_task_instance USING Btree("task_code","task_definition_version"); +DROP INDEX IF EXISTS "idx_status"; +CREATE INDEX IF NOT EXISTS idx_status ON t_ds_alert USING Btree("alert_status"); +DROP INDEX IF EXISTS "idx_sign"; +CREATE INDEX IF NOT EXISTS idx_sign ON t_ds_alert USING Btree("sign"); +DROP INDEX IF EXISTS "process_task_relation_idx_project_code_process_definition_code"; +CREATE INDEX IF NOT EXISTS process_task_relation_idx_project_code_process_definition_code ON t_ds_process_task_relation USING Btree("project_code","process_definition_code"); +DROP INDEX IF EXISTS "process_task_relation_idx_pre_task_code_version"; +CREATE INDEX IF NOT EXISTS process_task_relation_idx_pre_task_code_version ON t_ds_process_task_relation USING Btree("pre_task_code","pre_task_version"); +DROP INDEX IF EXISTS "process_task_relation_idx_post_task_code_version"; +CREATE INDEX IF NOT EXISTS process_task_relation_idx_post_task_code_version ON t_ds_process_task_relation USING Btree("post_task_code","post_task_version"); +DROP INDEX IF EXISTS "process_task_relation_log_idx_project_code_process_definition_code"; +CREATE INDEX IF NOT EXISTS process_task_relation_log_idx_project_code_process_definition_code ON t_ds_process_task_relation_log USING Btree("project_code","process_definition_code"); +DROP INDEX IF EXISTS "idx_task_definition_log_code_version"; +CREATE INDEX IF NOT EXISTS idx_task_definition_log_code_version ON t_ds_task_definition_log USING Btree("code","version"); +DROP INDEX IF EXISTS "user_id_index"; +CREATE INDEX IF NOT EXISTS user_id_index ON t_ds_project USING Btree("user_id"); + +--- Create table +CREATE TABLE IF NOT EXISTS "t_ds_dq_comparison_type" ( + id serial NOT NULL, + "type" varchar NOT NULL, + execute_sql varchar NULL, + output_table varchar NULL, + "name" varchar NULL, + create_time timestamp NULL, + update_time timestamp NULL, + is_inner_source bool NULL, + CONSTRAINT t_ds_dq_comparison_type_pk PRIMARY KEY (id) +); +CREATE TABLE IF NOT EXISTS "t_ds_dq_execute_result" ( id serial NOT NULL, process_definition_id int4 NULL, process_instance_id int4 NULL, @@ -129,9 +98,8 @@ EXECUTE 'CREATE TABLE IF NOT EXISTS' || quote_ident(v_schema) ||'."t_ds_dq_execu comparison_type int4 NULL, error_output_path text NULL, CONSTRAINT t_ds_dq_execute_result_pk PRIMARY KEY (id) -)'; - -EXECUTE 'CREATE TABLE IF NOT EXISTS' || quote_ident(v_schema) ||'."t_ds_dq_rule" ( +); +CREATE TABLE IF NOT EXISTS "t_ds_dq_rule" ( id serial NOT NULL, "name" varchar(100) DEFAULT NULL, "type" int4 NULL, @@ -139,9 +107,8 @@ EXECUTE 'CREATE TABLE IF NOT EXISTS' || quote_ident(v_schema) ||'."t_ds_dq_rule" create_time timestamp NULL, update_time timestamp NULL, CONSTRAINT t_ds_dq_rule_pk PRIMARY KEY (id) -)'; - -EXECUTE 'CREATE TABLE IF NOT EXISTS' || quote_ident(v_schema) ||'."t_ds_dq_rule_execute_sql" ( +); +CREATE TABLE IF NOT EXISTS "t_ds_dq_rule_execute_sql" ( id serial NOT NULL, "index" int4 NULL, "sql" text NULL, @@ -151,9 +118,8 @@ EXECUTE 'CREATE TABLE IF NOT EXISTS' || quote_ident(v_schema) ||'."t_ds_dq_rule_ update_time timestamp NULL, is_error_output_sql bool NULL, CONSTRAINT t_ds_dq_rule_execute_sql_pk PRIMARY KEY (id) -)'; - -EXECUTE 'CREATE TABLE IF NOT EXISTS' || quote_ident(v_schema) ||'."t_ds_dq_rule_input_entry" ( +); +CREATE TABLE IF NOT EXISTS "t_ds_dq_rule_input_entry" ( id serial NOT NULL, field varchar(255) DEFAULT NULL, "type" varchar(255) DEFAULT NULL, @@ -164,16 +130,15 @@ EXECUTE 'CREATE TABLE IF NOT EXISTS' || quote_ident(v_schema) ||'."t_ds_dq_rule_ option_source_type int4 NULL, value_type int4 NULL, input_type int4 NULL, - is_show int2 NULL DEFAULT "1"::smallint, - can_edit int2 NULL DEFAULT "1"::smallint, - is_emit int2 NULL DEFAULT "0"::smallint, - is_validate int2 NULL DEFAULT "0"::smallint, + is_show int2 NULL DEFAULT '1'::smallint, + can_edit int2 NULL DEFAULT '1'::smallint, + is_emit int2 NULL DEFAULT '0'::smallint, + is_validate int2 NULL DEFAULT '0'::smallint, create_time timestamp NULL, update_time timestamp NULL, CONSTRAINT t_ds_dq_rule_input_entry_pk PRIMARY KEY (id) -)'; - -EXECUTE 'CREATE TABLE IF NOT EXISTS' || quote_ident(v_schema) ||'."t_ds_dq_task_statistics_value" ( +); +CREATE TABLE IF NOT EXISTS "t_ds_dq_task_statistics_value" ( id serial NOT NULL, process_definition_id int4 NOT NULL, task_instance_id int4 NULL, @@ -185,18 +150,16 @@ EXECUTE 'CREATE TABLE IF NOT EXISTS' || quote_ident(v_schema) ||'."t_ds_dq_task_ create_time timestamp(0) NULL, update_time timestamp(0) NULL, CONSTRAINT t_ds_dq_task_statistics_value_pk PRIMARY KEY (id) -)'; - -EXECUTE 'CREATE TABLE IF NOT EXISTS' || quote_ident(v_schema) ||'."t_ds_relation_rule_execute_sql" ( +); +CREATE TABLE IF NOT EXISTS "t_ds_relation_rule_execute_sql" ( id serial NOT NULL, rule_id int4 NULL, execute_sql_id int4 NULL, create_time timestamp NULL, update_time timestamp NULL, CONSTRAINT t_ds_relation_rule_execute_sql_pk PRIMARY KEY (id) -)'; - -EXECUTE 'CREATE TABLE IF NOT EXISTS' || quote_ident(v_schema) ||'."t_ds_relation_rule_input_entry" ( +); +CREATE TABLE IF NOT EXISTS "t_ds_relation_rule_input_entry" ( id serial NOT NULL, rule_id int4 NULL, rule_input_entry_id int4 NULL, @@ -205,31 +168,20 @@ EXECUTE 'CREATE TABLE IF NOT EXISTS' || quote_ident(v_schema) ||'."t_ds_relation create_time timestamp NULL, update_time timestamp NULL, CONSTRAINT t_ds_relation_rule_input_entry_pk PRIMARY KEY (id) -)'; - -EXECUTE 'DROP INDEX IF EXISTS "idx_alert_status"'; -EXECUTE 'CREATE INDEX IF NOT EXISTS idx_alert_status ON ' || quote_ident(v_schema) ||'.t_ds_alert USING Btree("alert_status")'; - -EXECUTE 'DROP INDEX IF EXISTS "idx_task_definition_log_project_code"'; -EXECUTE 'CREATE INDEX IF NOT EXISTS idx_task_definition_log_project_code ON ' || quote_ident(v_schema) ||'.t_ds_task_definition_log USING Btree("project_code")'; - -EXECUTE 'DROP INDEX IF EXISTS "idx_task_instance_code_version"'; -EXECUTE 'CREATE INDEX IF NOT EXISTS idx_task_instance_code_version ON' || quote_ident(v_schema) ||'.t_ds_task_instance USING Btree("task_code","task_definition_version")'; - -EXECUTE 'CREATE TABLE IF NOT EXISTS '|| quote_ident(v_schema) ||'."t_ds_k8s" ( +); +CREATE TABLE IF NOT EXISTS "t_ds_k8s" ( id serial NOT NULL, k8s_name VARCHAR(100) DEFAULT NULL , k8s_config 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_k8s_namespace" ( +); +CREATE TABLE IF NOT EXISTS "t_ds_k8s_namespace" ( id serial NOT NULL, limits_memory int DEFAULT NULL , namespace varchar(100) DEFAULT NULL , - online_job_num int DEFAULT NULL, + online_job_num int DEFAULT '0', user_id int DEFAULT NULL, pod_replicas int DEFAULT NULL, pod_request_cpu NUMERIC(13,4) NULL, @@ -240,9 +192,8 @@ EXECUTE 'CREATE TABLE IF NOT EXISTS '|| quote_ident(v_schema) ||'."t_ds_k8s_name update_time timestamp DEFAULT NULL , PRIMARY KEY (id) , CONSTRAINT k8s_namespace_unique UNIQUE (namespace,k8s) -)'; - -EXECUTE 'CREATE TABLE IF NOT EXISTS '|| quote_ident(v_schema) ||'."t_ds_relation_namespace_user" ( +); +CREATE TABLE IF NOT EXISTS "t_ds_relation_namespace_user" ( id serial NOT NULL, user_id int DEFAULT NULL , namespace_id int DEFAULT NULL , @@ -251,15 +202,50 @@ EXECUTE 'CREATE TABLE IF NOT EXISTS '|| quote_ident(v_schema) ||'."t_ds_relation update_time timestamp DEFAULT NULL , PRIMARY KEY (id) , CONSTRAINT namespace_user_unique UNIQUE (user_id,namespace_id) -)'; - -return 'Success!'; -exception when others then - ---Raise EXCEPTION '(%)',SQLERRM; - return SQLERRM; -END; -$BODY$; - -select dolphin_update_metadata(); - -d// +); +CREATE TABLE IF NOT EXISTS "t_ds_alert_send_status" ( + id serial NOT NULL, + alert_id int NOT NULL, + alert_plugin_instance_id int NOT NULL, + send_status int DEFAULT '0', + log text, + create_time timestamp DEFAULT NULL, + PRIMARY KEY (id), + CONSTRAINT alert_send_status_unique UNIQUE (alert_id,alert_plugin_instance_id) +); +CREATE TABLE IF NOT EXISTS "t_ds_audit_log" ( + id serial NOT NULL, + user_id int NOT NULL, + resource_type int NOT NULL, + operation int NOT NULL, + time timestamp DEFAULT NULL , + resource_id int NOT NULL, + PRIMARY KEY (id) +); +CREATE TABLE IF NOT EXISTS "t_ds_task_group" ( + id serial NOT NULL, + name varchar(100) DEFAULT NULL , + description varchar(200) DEFAULT NULL , + group_size int NOT NULL , + project_code bigint DEFAULT '0', + use_size int DEFAULT '0' , + user_id int DEFAULT NULL , + status int DEFAULT '1' , + create_time timestamp DEFAULT NULL , + update_time timestamp DEFAULT NULL , + PRIMARY KEY(id) +); +CREATE TABLE IF NOT EXISTS "t_ds_task_group_queue" ( + id serial NOT NULL, + task_id int DEFAULT NULL , + task_name VARCHAR(100) DEFAULT NULL , + group_id int DEFAULT NULL , + process_id int DEFAULT NULL , + priority int DEFAULT '0' , + status int DEFAULT '-1' , + force_start int DEFAULT '0' , + in_queue int DEFAULT '0' , + create_time timestamp DEFAULT NULL , + update_time timestamp DEFAULT NULL , + PRIMARY KEY (id) +);