From f2a2d15e7f28d22e910fc027014f574abf66e230 Mon Sep 17 00:00:00 2001 From: eikek Date: Mon, 21 Mar 2022 10:28:21 +0100 Subject: [PATCH] Add missing fixup changesets --- .../h2/V1.33.0__fix_reorganize_files.sql | 58 +++++++++++++++++++ .../mariadb/V1.33.0__fix_reorganize_files.sql | 55 ++++++++++++++++++ 2 files changed, 113 insertions(+) create mode 100644 modules/store/src/main/resources/db/fixups/h2/V1.33.0__fix_reorganize_files.sql create mode 100644 modules/store/src/main/resources/db/fixups/mariadb/V1.33.0__fix_reorganize_files.sql diff --git a/modules/store/src/main/resources/db/fixups/h2/V1.33.0__fix_reorganize_files.sql b/modules/store/src/main/resources/db/fixups/h2/V1.33.0__fix_reorganize_files.sql new file mode 100644 index 00000000..6ac74c2b --- /dev/null +++ b/modules/store/src/main/resources/db/fixups/h2/V1.33.0__fix_reorganize_files.sql @@ -0,0 +1,58 @@ +drop table if exists valid_file_ids; +create table valid_file_ids ( + id bigserial primary key, + file_id varchar(254) not null unique +); + +-- Source files +insert into valid_file_ids (file_id) + select rs.file_id + from attachment_source rs +; + +-- Archive files +insert into valid_file_ids (file_id) + select distinct rs.file_id + from attachment_archive rs +; + +-- Preview image +insert into valid_file_ids (file_id) + select ap.file_id + from attachment_preview ap +; + +-- classifier +insert into valid_file_ids (file_id) + select file_id + from classifier_model +; + +-- save obsolete files +drop table if exists obsolete_files; +create table obsolete_files( + file_id varchar(254) not null +); + +with + missing_ids as ( + select file_id from filemeta + except + select file_id as file_id from valid_file_ids) +insert into obsolete_files (file_id) + select file_id from filemeta + where file_id in (select file_id from missing_ids) +; + + +-- remove orphaned chunks +delete from "filechunk" +where "file_id" in ( + select distinct file_id from filechunk + where file_id not in (select file_id from valid_file_ids) + and file_id not in (select file_id from obsolete_files) +); + +-- drop temp table +drop table valid_file_ids; +drop table obsolete_files; diff --git a/modules/store/src/main/resources/db/fixups/mariadb/V1.33.0__fix_reorganize_files.sql b/modules/store/src/main/resources/db/fixups/mariadb/V1.33.0__fix_reorganize_files.sql new file mode 100644 index 00000000..b4a4a34a --- /dev/null +++ b/modules/store/src/main/resources/db/fixups/mariadb/V1.33.0__fix_reorganize_files.sql @@ -0,0 +1,55 @@ +drop table if exists valid_file_ids; +create table valid_file_ids ( + id bigint auto_increment primary key, + file_id varchar(254) not null unique +); + +-- Source files +insert into valid_file_ids (file_id) + select rs.file_id + from attachment_source rs +; + +-- Archive files +insert into valid_file_ids (file_id) + select distinct rs.file_id + from attachment_archive rs +; + +-- Preview image +insert into valid_file_ids (file_id) + select ap.file_id + from attachment_preview ap +; + +-- classifier +insert into valid_file_ids (file_id) + select file_id + from classifier_model +; + +-- save obsolete files +drop table if exists obsolete_files; +create table obsolete_files( + file_id varchar(254) not null +); + +insert into obsolete_files (file_id) + select file_id from filemeta + where file_id in ( + select file_id from filemeta + except + select file_id as file_id from valid_file_ids + ); + +-- remove orphaned chunks +delete from filechunk +where file_id in ( + select distinct file_id from filechunk + where file_id not in (select file_id from valid_file_ids) + and file_id not in (select file_id from obsolete_files) +); + +-- drop temp table +drop table valid_file_ids; +drop table obsolete_files;