From 6e1980831753ead3cf5c1656f6f9a00d6b340ef5 Mon Sep 17 00:00:00 2001 From: nmirasch Date: Mon, 30 Oct 2023 14:30:09 +0100 Subject: [PATCH] KOGITO-9825:Data index flyway postgresql migration scripts doesn't allow multiple executions (#1884) --- .../migration/V1.32.0__data_index_create.sql | 72 +++++++++++++++---- .../V1.44.0__data_index_definitions.sql | 16 +++-- ...V1.45.0.0__data_index_node_definitions.sql | 11 ++- ....0.1__add_identity_to_process_instance.sql | 6 +- .../main/resources/db/migration/readme.txt | 2 + 5 files changed, 84 insertions(+), 23 deletions(-) create mode 100644 data-index/data-index-storage/data-index-storage-postgresql/src/main/resources/db/migration/readme.txt diff --git a/data-index/data-index-storage/data-index-storage-postgresql/src/main/resources/db/migration/V1.32.0__data_index_create.sql b/data-index/data-index-storage/data-index-storage-postgresql/src/main/resources/db/migration/V1.32.0__data_index_create.sql index 58cbc17bce..5499ecb057 100644 --- a/data-index/data-index-storage/data-index-storage-postgresql/src/main/resources/db/migration/V1.32.0__data_index_create.sql +++ b/data-index/data-index-storage/data-index-storage-postgresql/src/main/resources/db/migration/V1.32.0__data_index_create.sql @@ -1,4 +1,4 @@ -create table attachments +create table IF NOT EXISTS attachments ( id varchar(255) not null, content varchar(255), @@ -9,7 +9,7 @@ create table attachments primary key (id) ); -create table comments +create table IF NOT EXISTS comments ( id varchar(255) not null, content varchar(255), @@ -19,7 +19,7 @@ create table comments primary key (id) ); -create table jobs +create table IF NOT EXISTS jobs ( id varchar(255) not null, callback_endpoint varchar(255), @@ -41,7 +41,7 @@ create table jobs primary key (id) ); -create table milestones +create table IF NOT EXISTS milestones ( id varchar(255) not null, process_instance_id varchar(255) not null, @@ -50,7 +50,7 @@ create table milestones primary key (id, process_instance_id) ); -create table nodes +create table IF NOT EXISTS nodes ( id varchar(255) not null, definition_id varchar(255), @@ -63,7 +63,7 @@ create table nodes primary key (id) ); -create table processes +create table IF NOT EXISTS processes ( id varchar(255) not null, business_key varchar(255), @@ -83,21 +83,21 @@ create table processes primary key (id) ); -create table processes_addons +create table IF NOT EXISTS processes_addons ( process_id varchar(255) not null, addon varchar(255) not null, primary key (process_id, addon) ); -create table processes_roles +create table IF NOT EXISTS processes_roles ( process_id varchar(255) not null, role varchar(255) not null, primary key (process_id, role) ); -create table tasks +create table IF NOT EXISTS tasks ( id varchar(255) not null, actual_owner varchar(255), @@ -119,41 +119,45 @@ create table tasks primary key (id) ); -create table tasks_admin_groups +create table IF NOT EXISTS tasks_admin_groups ( task_id varchar(255) not null, group_id varchar(255) not null, primary key (task_id, group_id) ); -create table tasks_admin_users +create table IF NOT EXISTS tasks_admin_users ( task_id varchar(255) not null, user_id varchar(255) not null, primary key (task_id, user_id) ); -create table tasks_excluded_users +create table IF NOT EXISTS tasks_excluded_users ( task_id varchar(255) not null, user_id varchar(255) not null, primary key (task_id, user_id) ); -create table tasks_potential_groups +create table IF NOT EXISTS tasks_potential_groups ( task_id varchar(255) not null, group_id varchar(255) not null, primary key (task_id, group_id) ); -create table tasks_potential_users +create table IF NOT EXISTS tasks_potential_users ( task_id varchar(255) not null, user_id varchar(255) not null, primary key (task_id, user_id) ); +alter table if exists attachments + drop constraint if exists fk_attachments_tasks +cascade; + alter table if exists attachments add constraint fk_attachments_tasks foreign key (task_id) @@ -162,6 +166,10 @@ alter table if exists attachments delete cascade; +alter table if exists comments + drop constraint if exists fk_comments_tasks +cascade; + alter table if exists comments add constraint fk_comments_tasks foreign key (task_id) @@ -170,6 +178,10 @@ alter table if exists comments delete cascade; +alter table if exists milestones +drop constraint if exists fk_milestones_process +cascade; + alter table if exists milestones add constraint fk_milestones_process foreign key (process_instance_id) @@ -178,6 +190,10 @@ alter table if exists milestones delete cascade; +alter table if exists nodes +drop constraint if exists fk_nodes_process +cascade; + alter table if exists nodes add constraint fk_nodes_process foreign key (process_instance_id) @@ -186,6 +202,10 @@ alter table if exists nodes delete cascade; +alter table if exists processes_addons +drop constraint if exists fk_processes_addons_processes +cascade; + alter table if exists processes_addons add constraint fk_processes_addons_processes foreign key (process_id) @@ -194,6 +214,10 @@ alter table if exists processes_addons delete cascade; +alter table if exists processes_roles +drop constraint if exists fk_processes_roles_processes +cascade; + alter table if exists processes_roles add constraint fk_processes_roles_processes foreign key (process_id) @@ -202,6 +226,10 @@ alter table if exists processes_roles delete cascade; +alter table if exists tasks_admin_groups +drop constraint if exists fk_tasks_admin_groups_tasks +cascade; + alter table if exists tasks_admin_groups add constraint fk_tasks_admin_groups_tasks foreign key (task_id) @@ -210,6 +238,10 @@ alter table if exists tasks_admin_groups delete cascade; +alter table if exists tasks_admin_users +drop constraint if exists fk_tasks_admin_users_tasks +cascade; + alter table if exists tasks_admin_users add constraint fk_tasks_admin_users_tasks foreign key (task_id) @@ -218,6 +250,10 @@ alter table if exists tasks_admin_users delete cascade; +alter table if exists tasks_excluded_users +drop constraint if exists fk_tasks_excluded_users_tasks +cascade; + alter table if exists tasks_excluded_users add constraint fk_tasks_excluded_users_tasks foreign key (task_id) @@ -226,6 +262,10 @@ alter table if exists tasks_excluded_users delete cascade; +alter table if exists tasks_potential_groups +drop constraint if exists fk_tasks_potential_groups_tasks +cascade; + alter table if exists tasks_potential_groups add constraint fk_tasks_potential_groups_tasks foreign key (task_id) @@ -234,6 +274,10 @@ alter table if exists tasks_potential_groups delete cascade; +alter table if exists tasks_potential_users +drop constraint if exists fk_tasks_potential_users_tasks +cascade; + alter table if exists tasks_potential_users add constraint fk_tasks_potential_users_tasks foreign key (task_id) diff --git a/data-index/data-index-storage/data-index-storage-postgresql/src/main/resources/db/migration/V1.44.0__data_index_definitions.sql b/data-index/data-index-storage/data-index-storage-postgresql/src/main/resources/db/migration/V1.44.0__data_index_definitions.sql index 407913ff70..6c7937a44e 100644 --- a/data-index/data-index-storage/data-index-storage-postgresql/src/main/resources/db/migration/V1.44.0__data_index_definitions.sql +++ b/data-index/data-index-storage/data-index-storage-postgresql/src/main/resources/db/migration/V1.44.0__data_index_definitions.sql @@ -1,4 +1,4 @@ -create table definitions +create table IF NOT EXISTS definitions ( id varchar(255) not null, version varchar(255) not null, @@ -9,7 +9,7 @@ create table definitions primary key (id, version) ); -create table definitions_addons +create table IF NOT EXISTS definitions_addons ( process_id varchar(255) not null, process_version varchar(255) not null, @@ -17,7 +17,7 @@ create table definitions_addons primary key (process_id, process_version, addon) ); -create table definitions_roles +create table IF NOT EXISTS definitions_roles ( process_id varchar(255) not null, process_version varchar(255) not null, @@ -25,6 +25,10 @@ create table definitions_roles primary key (process_id, process_version, role) ); +alter table if exists definitions_addons +drop constraint if exists fk_definitions_addons_definitions +cascade; + alter table if exists definitions_addons add constraint fk_definitions_addons_definitions foreign key (process_id, process_version) @@ -33,6 +37,10 @@ alter table if exists definitions_addons delete cascade; +alter table if exists definitions_roles +drop constraint if exists fk_definitions_roles_definitions +cascade; + alter table if exists definitions_roles add constraint fk_definitions_roles_definitions foreign key (process_id, process_version) @@ -42,4 +50,4 @@ delete cascade; alter table if exists processes - add column version varchar (255); + add column IF NOT EXISTS version varchar (255); diff --git a/data-index/data-index-storage/data-index-storage-postgresql/src/main/resources/db/migration/V1.45.0.0__data_index_node_definitions.sql b/data-index/data-index-storage/data-index-storage-postgresql/src/main/resources/db/migration/V1.45.0.0__data_index_node_definitions.sql index 8b5f79995b..5332c4946d 100644 --- a/data-index/data-index-storage/data-index-storage-postgresql/src/main/resources/db/migration/V1.45.0.0__data_index_node_definitions.sql +++ b/data-index/data-index-storage/data-index-storage-postgresql/src/main/resources/db/migration/V1.45.0.0__data_index_node_definitions.sql @@ -1,4 +1,4 @@ -create table definitions_nodes +create table IF NOT EXISTS definitions_nodes ( id varchar(255) not null, name varchar(255), @@ -9,7 +9,7 @@ create table definitions_nodes primary key (id, process_id, process_version) ); -create table definitions_nodes_metadata +create table IF NOT EXISTS definitions_nodes_metadata ( node_id varchar(255) not null, process_id varchar(255) not null, @@ -18,6 +18,9 @@ create table definitions_nodes_metadata key varchar(255) not null, primary key (node_id, process_id, process_version, key) ); +alter table if exists definitions_nodes +drop constraint if exists fk_definitions_nodes_definitions +cascade; alter table if exists definitions_nodes add constraint fk_definitions_nodes_definitions @@ -27,6 +30,10 @@ alter table if exists definitions_nodes delete cascade; +alter table if exists definitions_nodes_metadata +drop constraint if exists fk_definitions_nodes_metadata_definitions_nodes +cascade; + alter table if exists definitions_nodes_metadata add constraint fk_definitions_nodes_metadata_definitions_nodes foreign key (node_id, process_id, process_version) diff --git a/data-index/data-index-storage/data-index-storage-postgresql/src/main/resources/db/migration/V1.45.0.1__add_identity_to_process_instance.sql b/data-index/data-index-storage/data-index-storage-postgresql/src/main/resources/db/migration/V1.45.0.1__add_identity_to_process_instance.sql index c942bfeb96..dc94cd5caf 100644 --- a/data-index/data-index-storage/data-index-storage-postgresql/src/main/resources/db/migration/V1.45.0.1__add_identity_to_process_instance.sql +++ b/data-index/data-index-storage/data-index-storage-postgresql/src/main/resources/db/migration/V1.45.0.1__add_identity_to_process_instance.sql @@ -1,3 +1,3 @@ -ALTER TABLE processes - ADD COLUMN created_by character varying, - ADD COLUMN updated_by character varying; \ No newline at end of file +ALTER TABLE IF exists processes + ADD COLUMN IF NOT EXISTS created_by character varying, + ADD COLUMN IF NOT EXISTS updated_by character varying; \ No newline at end of file diff --git a/data-index/data-index-storage/data-index-storage-postgresql/src/main/resources/db/migration/readme.txt b/data-index/data-index-storage/data-index-storage-postgresql/src/main/resources/db/migration/readme.txt new file mode 100644 index 0000000000..e08db4d0ae --- /dev/null +++ b/data-index/data-index-storage/data-index-storage-postgresql/src/main/resources/db/migration/readme.txt @@ -0,0 +1,2 @@ +Ensure migration scripts are developed to support several executions over the same database without any error. +This feature will make sure this migration execution would be compatible with other needed flyway migrations without broking the chain. \ No newline at end of file