From ff6bf2d6ac17d6c32bb5fb6e5a6f2f544c7db1d0 Mon Sep 17 00:00:00 2001 From: tiny Flutter team Date: Tue, 7 Apr 2026 23:13:22 +0700 Subject: [PATCH] feat(database): consolidate PostgreSQL migrations into a single baseline schema with quoted identifiers to resolve persistent case-sensitivity issues and JDBC migration failures --- .../postgresql/V001__initial_migration.sql | 637 ++++++++++++++++++ .../V20200706141854__initial_migration.sql | 194 ------ .../V20200730135746__image_dimension.sql | 4 - .../V20200810154729__thumbnails_part_1.sql | 13 - .../V20200810165912__thumbnails_part_3.sql | 26 - .../V20200812161631__thumbnails_series.sql | 10 - .../V20200814142406__library_scan_options.sql | 4 - ...14145800__library_import_local_artwork.sql | 2 - .../postgresql/V20200817115957__readlists.sql | 20 - ...20200820141405__metadata_fields_part_1.sql | 52 -- ...20200820154318__metadata_fields_part_3.sql | 45 -- .../postgresql/V20200827103627__index.sql | 15 - .../V20200906115600__lower_trim_tags.sql | 37 - ...10111113543__book_metadata_aggregation.sql | 20 - .../postgresql/V20210308163522__book_isbn.sql | 7 - ...20210504171645__library_convert_to_cbz.sql | 2 - ...10505150806__library_repair_extensions.sql | 2 - .../postgresql/V20210517145427__fix_rar.sql | 18 - .../postgresql/V20210525172240__index.sql | 1 - .../V20210526113555__series_book_count.sql | 29 - .../V20210527100741__index_book_created.sql | 2 - .../postgresql/V20210609165742__sidecars.sql | 7 - .../V20210617114814__sidecar_cleanup.sql | 6 - ...0210625155626__authentication_activity.sql | 11 - .../postgresql/V20210706162229__trash_bin.sql | 11 - ...6153910__library_import_mylar_metadata.sql | 2 - .../V20210726140759__cover_preference.sql | 2 - .../V20210727102041__full_text_search.sql | 83 --- ...3532__series_metadata_total_book_count.sql | 4 - ...0111835__book_metadata_aggregation_tag.sql | 12 - .../V20210730151147__readlist_summary.sql | 2 - ...0210805174355__remove_full_text_search.sql | 24 - .../V20210816113108__library_unavailable.sql | 2 - .../V20210831113524__temp_table_urls.sql | 4 - ...V20210902100930__series_thumbnail_blob.sql | 20 - ...33__series_metadata_lowercase_language.sql | 2 - .../V20210907115532__spring_session.sql | 24 - ...0210914111439__read_progress_read_date.sql | 21 - ...222612__authentication_activity_source.sql | 2 - ...V20211006141333__remove_spring_session.sql | 2 - .../V20211206100610__temp_table_ids.sql | 6 - ...20__collection_and_readlist_thumbnails.sql | 23 - .../V20211228152113__book_metadata_link.sql | 10 - .../postgresql/V20220101120232__page_hash.sql | 2 - ...0220105143154__library_hashing_options.sql | 6 - .../V20220106143755__page_file_size.sql | 2 - .../postgresql/V20220128152310__page_hash.sql | 30 - ...08193203__fix_books_with_missing_pages.sql | 8 - .../V20220218111455__historical_events.sql | 17 - ...V20220224112015__series_sharing_labels.sql | 9 - .../V20220225164240__user_restrictions.sql | 13 - .../V20220715213721__perf_indices.sql | 31 - ...51202__library_comicinfo_append_volume.sql | 2 - .../V20230113140806__series_metadata_link.sql | 13 - ...20230116112647__series_alternate_title.sql | 13 - .../V20230221170726__readlist_ordered.sql | 2 - ...V20230310121946__series_metadata_index.sql | 2 - .../postgresql/V20230626150454__xxhash128.sql | 4 - .../V20230626151717__missing_page_size.sql | 8 - ...230626170856__page_hash_remove_columns.sql | 33 - ...114356__remove_library_scandeep_column.sql | 2 - .../V20230711173700__read_announcements.sql | 7 - .../postgresql/V20230724114349__oneshots.sql | 8 - .../V20230918114751__library_settings.sql | 12 - ...21112923__library_directory_exclusions.sql | 17 - .../V20230922143307__server_settings.sql | 14 - ...1005165322__thumbnails_additional_info.sql | 36 - ...20231026164836__thumbnail_book_indices.sql | 6 - .../V20231115163730__analyze_pdf.sql | 4 - .../postgresql/V20231116162048__epub.sql | 16 - .../V20231201115954__media_extension_blob.sql | 13 - .../V20231206152158__progression.sql | 6 - ...231213170042__cleanup_empty_thumbnails.sql | 4 - ...31214152305__epub_divina_compatibility.sql | 2 - .../V20231214163213__reanalyze_epub.sql | 9 - .../postgresql/V20240529120933__apikey.sql | 18 - .../postgresql/V20240529120934__syncpoint.sql | 41 -- .../V20240614170012__user_kobo_role.sql | 6 - ...152500__read_progress_series_read_date.sql | 16 - .../V20240909112827__syncpoint_readlists.sql | 34 - .../postgresql/V20240911175419__kepub.sql | 2 - .../V20240925174446__syncpoint_covers.sql | 2 - .../V20250108115503__user_roles.sql | 65 -- .../V20250108172343__koreader_hash.sql | 6 - .../V20250205151235__client_settings.sql | 15 - ...250730173126__remove_temp_string_table.sql | 1 - run-local-with-postgres.sh | 39 +- 87 files changed, 661 insertions(+), 1355 deletions(-) create mode 100644 komga/src/flyway/resources/db/migration/postgresql/V001__initial_migration.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20200706141854__initial_migration.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20200730135746__image_dimension.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20200810154729__thumbnails_part_1.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20200810165912__thumbnails_part_3.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20200812161631__thumbnails_series.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20200814142406__library_scan_options.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20200814145800__library_import_local_artwork.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20200817115957__readlists.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20200820141405__metadata_fields_part_1.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20200820154318__metadata_fields_part_3.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20200827103627__index.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20200906115600__lower_trim_tags.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210111113543__book_metadata_aggregation.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210308163522__book_isbn.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210504171645__library_convert_to_cbz.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210505150806__library_repair_extensions.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210517145427__fix_rar.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210525172240__index.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210526113555__series_book_count.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210527100741__index_book_created.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210609165742__sidecars.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210617114814__sidecar_cleanup.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210625155626__authentication_activity.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210706162229__trash_bin.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210716153910__library_import_mylar_metadata.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210726140759__cover_preference.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210727102041__full_text_search.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210729173532__series_metadata_total_book_count.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210730111835__book_metadata_aggregation_tag.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210730151147__readlist_summary.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210805174355__remove_full_text_search.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210816113108__library_unavailable.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210831113524__temp_table_urls.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210902100930__series_thumbnail_blob.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210906163333__series_metadata_lowercase_language.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210907115532__spring_session.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210914111439__read_progress_read_date.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20210926222612__authentication_activity_source.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20211006141333__remove_spring_session.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20211206100610__temp_table_ids.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20211206124920__collection_and_readlist_thumbnails.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20211228152113__book_metadata_link.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20220101120232__page_hash.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20220105143154__library_hashing_options.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20220106143755__page_file_size.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20220128152310__page_hash.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20220208193203__fix_books_with_missing_pages.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20220218111455__historical_events.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20220224112015__series_sharing_labels.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20220225164240__user_restrictions.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20220715213721__perf_indices.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20230112151202__library_comicinfo_append_volume.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20230113140806__series_metadata_link.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20230116112647__series_alternate_title.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20230221170726__readlist_ordered.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20230310121946__series_metadata_index.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20230626150454__xxhash128.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20230626151717__missing_page_size.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20230626170856__page_hash_remove_columns.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20230629114356__remove_library_scandeep_column.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20230711173700__read_announcements.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20230724114349__oneshots.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20230918114751__library_settings.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20230921112923__library_directory_exclusions.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20230922143307__server_settings.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20231005165322__thumbnails_additional_info.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20231026164836__thumbnail_book_indices.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20231115163730__analyze_pdf.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20231116162048__epub.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20231201115954__media_extension_blob.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20231206152158__progression.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20231213170042__cleanup_empty_thumbnails.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20231214152305__epub_divina_compatibility.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20231214163213__reanalyze_epub.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20240529120933__apikey.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20240529120934__syncpoint.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20240614170012__user_kobo_role.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20240906152500__read_progress_series_read_date.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20240909112827__syncpoint_readlists.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20240911175419__kepub.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20240925174446__syncpoint_covers.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20250108115503__user_roles.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20250108172343__koreader_hash.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20250205151235__client_settings.sql delete mode 100644 komga/src/flyway/resources/db/migration/postgresql/V20250730173126__remove_temp_string_table.sql diff --git a/komga/src/flyway/resources/db/migration/postgresql/V001__initial_migration.sql b/komga/src/flyway/resources/db/migration/postgresql/V001__initial_migration.sql new file mode 100644 index 00000000..7e80148e --- /dev/null +++ b/komga/src/flyway/resources/db/migration/postgresql/V001__initial_migration.sql @@ -0,0 +1,637 @@ +-- PostgreSQL full schema (RE-AUDITED from SQLite dump) +-- This file contains the complete schema as of V20250730173126 +-- Built with QUOTED identifiers for case-sensitivity on PostgreSQL + +CREATE TABLE "LIBRARY" +( + "ID" varchar NOT NULL PRIMARY KEY, + "CREATED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "LAST_MODIFIED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "NAME" varchar NOT NULL, + "ROOT" varchar NOT NULL, + "IMPORT_COMICINFO_BOOK" boolean NOT NULL DEFAULT true, + "IMPORT_COMICINFO_SERIES" boolean NOT NULL DEFAULT true, + "IMPORT_COMICINFO_COLLECTION" boolean NOT NULL DEFAULT true, + "IMPORT_EPUB_BOOK" boolean NOT NULL DEFAULT true, + "IMPORT_EPUB_SERIES" boolean NOT NULL DEFAULT true, + "SCAN_FORCE_MODIFIED_TIME" boolean NOT NULL DEFAULT false, + "SCAN_STARTUP" boolean NOT NULL DEFAULT false, + "IMPORT_LOCAL_ARTWORK" boolean NOT NULL DEFAULT true, + "IMPORT_COMICINFO_READLIST" boolean NOT NULL DEFAULT true, + "IMPORT_BARCODE_ISBN" boolean NOT NULL DEFAULT true, + "CONVERT_TO_CBZ" boolean NOT NULL DEFAULT false, + "REPAIR_EXTENSIONS" boolean NOT NULL DEFAULT false, + "EMPTY_TRASH_AFTER_SCAN" boolean NOT NULL DEFAULT false, + "IMPORT_MYLAR_SERIES" boolean NOT NULL DEFAULT true, + "SERIES_COVER" varchar NOT NULL DEFAULT 'FIRST', + "UNAVAILABLE_DATE" timestamp NULL DEFAULT NULL, + "HASH_FILES" boolean NOT NULL DEFAULT true, + "HASH_PAGES" boolean NOT NULL DEFAULT false, + "ANALYZE_DIMENSIONS" boolean NOT NULL DEFAULT true, + "IMPORT_COMICINFO_SERIES_APPEND_VOLUME" boolean NOT NULL DEFAULT true, + "ONESHOTS_DIRECTORY" varchar NULL DEFAULT NULL, + "SCAN_CBX" boolean NOT NULL DEFAULT true, + "SCAN_PDF" boolean NOT NULL DEFAULT true, + "SCAN_EPUB" boolean NOT NULL DEFAULT true, + "SCAN_INTERVAL" varchar NOT NULL DEFAULT 'EVERY_6H', + "HASH_KOREADER" boolean NOT NULL DEFAULT false +); + +CREATE TABLE "USER" +( + "ID" varchar NOT NULL PRIMARY KEY, + "CREATED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "LAST_MODIFIED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "EMAIL" varchar NOT NULL UNIQUE, + "PASSWORD" varchar NOT NULL, + "SHARED_ALL_LIBRARIES" boolean NOT NULL DEFAULT true, + "AGE_RESTRICTION" integer, + "AGE_RESTRICTION_ALLOW_ONLY" boolean +); + +CREATE TABLE "USER_LIBRARY_SHARING" +( + "USER_ID" varchar NOT NULL, + "LIBRARY_ID" varchar NOT NULL, + PRIMARY KEY ("USER_ID", "LIBRARY_ID"), + FOREIGN KEY ("USER_ID") REFERENCES "USER" ("ID"), + FOREIGN KEY ("LIBRARY_ID") REFERENCES "LIBRARY" ("ID") +); + +CREATE TABLE "SERIES" +( + "ID" varchar NOT NULL PRIMARY KEY, + "CREATED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "LAST_MODIFIED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "FILE_LAST_MODIFIED" timestamp NOT NULL, + "NAME" varchar NOT NULL, + "URL" varchar NOT NULL, + "LIBRARY_ID" varchar NOT NULL, + "BOOK_COUNT" integer NOT NULL DEFAULT 0, + "DELETED_DATE" timestamp NULL DEFAULT NULL, + "oneshot" boolean NOT NULL DEFAULT false, + FOREIGN KEY ("LIBRARY_ID") REFERENCES "LIBRARY" ("ID") +); + +CREATE TABLE "SERIES_METADATA" +( + "CREATED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "LAST_MODIFIED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "STATUS" varchar NOT NULL, + "STATUS_LOCK" boolean NOT NULL DEFAULT false, + "TITLE" varchar NOT NULL, + "TITLE_LOCK" boolean NOT NULL DEFAULT false, + "TITLE_SORT" varchar NOT NULL, + "TITLE_SORT_LOCK" boolean NOT NULL DEFAULT false, + "SERIES_ID" varchar NOT NULL PRIMARY KEY, + "PUBLISHER" varchar NOT NULL DEFAULT '', + "PUBLISHER_LOCK" boolean NOT NULL DEFAULT false, + "READING_DIRECTION" varchar NULL, + "READING_DIRECTION_LOCK" boolean NOT NULL DEFAULT false, + "AGE_RATING" integer NULL, + "AGE_RATING_LOCK" boolean NOT NULL DEFAULT false, + "SUMMARY" text NOT NULL DEFAULT '', + "SUMMARY_LOCK" boolean NOT NULL DEFAULT false, + "LANGUAGE" varchar NOT NULL DEFAULT '', + "LANGUAGE_LOCK" boolean NOT NULL DEFAULT false, + "GENRES_LOCK" boolean NOT NULL DEFAULT false, + "TAGS_LOCK" boolean NOT NULL DEFAULT false, + "TOTAL_BOOK_COUNT" integer NULL, + "TOTAL_BOOK_COUNT_LOCK" boolean NOT NULL DEFAULT false, + "SHARING_LABELS_LOCK" boolean NOT NULL DEFAULT false, + "LINKS_LOCK" boolean NOT NULL DEFAULT false, + "ALTERNATE_TITLES_LOCK" boolean NOT NULL DEFAULT false, + FOREIGN KEY ("SERIES_ID") REFERENCES "SERIES" ("ID") +); + +CREATE TABLE "BOOK" +( + "ID" varchar NOT NULL PRIMARY KEY, + "CREATED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "LAST_MODIFIED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "FILE_LAST_MODIFIED" timestamp NOT NULL, + "NAME" varchar NOT NULL, + "URL" varchar NOT NULL, + "SERIES_ID" varchar NOT NULL, + "FILE_SIZE" bigint NOT NULL DEFAULT 0, + "NUMBER" integer NOT NULL DEFAULT 0, + "LIBRARY_ID" varchar NOT NULL, + "FILE_HASH" varchar NOT NULL DEFAULT '', + "DELETED_DATE" timestamp NULL DEFAULT NULL, + "oneshot" boolean NOT NULL DEFAULT false, + "FILE_HASH_KOREADER" varchar NOT NULL DEFAULT '', + FOREIGN KEY ("LIBRARY_ID") REFERENCES "LIBRARY" ("ID"), + FOREIGN KEY ("SERIES_ID") REFERENCES "SERIES" ("ID") +); + +CREATE TABLE "MEDIA_PAGE" +( + "FILE_NAME" varchar NOT NULL, + "MEDIA_TYPE" varchar NOT NULL, + "NUMBER" integer NOT NULL, + "BOOK_ID" varchar NOT NULL, + "WIDTH" integer NULL, + "HEIGHT" integer NULL, + "FILE_HASH" varchar NOT NULL DEFAULT '', + "FILE_SIZE" bigint NULL, + PRIMARY KEY ("BOOK_ID", "NUMBER"), + FOREIGN KEY ("BOOK_ID") REFERENCES "BOOK" ("ID") +); + +CREATE TABLE "MEDIA_FILE" +( + "FILE_NAME" varchar NOT NULL, + "BOOK_ID" varchar NOT NULL, + "MEDIA_TYPE" varchar NULL, + "SUB_TYPE" varchar NULL, + "FILE_SIZE" bigint NULL, + FOREIGN KEY ("BOOK_ID") REFERENCES "BOOK" ("ID") +); + +CREATE TABLE "BOOK_METADATA_AUTHOR" +( + "NAME" varchar NOT NULL, + "ROLE" varchar NOT NULL, + "BOOK_ID" varchar NOT NULL, + FOREIGN KEY ("BOOK_ID") REFERENCES "BOOK" ("ID") +); + +CREATE TABLE "COLLECTION" +( + "ID" varchar NOT NULL PRIMARY KEY, + "NAME" varchar NOT NULL, + "ORDERED" boolean NOT NULL DEFAULT false, + "SERIES_COUNT" integer NOT NULL, + "CREATED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "LAST_MODIFIED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +CREATE TABLE "COLLECTION_SERIES" +( + "COLLECTION_ID" varchar NOT NULL, + "SERIES_ID" varchar NOT NULL, + "NUMBER" integer NOT NULL, + PRIMARY KEY ("COLLECTION_ID", "SERIES_ID"), + FOREIGN KEY ("COLLECTION_ID") REFERENCES "COLLECTION" ("ID"), + FOREIGN KEY ("SERIES_ID") REFERENCES "SERIES" ("ID") +); + +CREATE TABLE "THUMBNAIL_BOOK" +( + "ID" varchar NOT NULL PRIMARY KEY, + "THUMBNAIL" bytea NULL, + "URL" varchar NULL, + "SELECTED" boolean NOT NULL DEFAULT false, + "TYPE" varchar NOT NULL, + "CREATED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "LAST_MODIFIED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "BOOK_ID" varchar NOT NULL, + "WIDTH" integer NOT NULL DEFAULT 0, + "HEIGHT" integer NOT NULL DEFAULT 0, + "MEDIA_TYPE" varchar NOT NULL DEFAULT '', + "FILE_SIZE" bigint NOT NULL DEFAULT 0, + FOREIGN KEY ("BOOK_ID") REFERENCES "BOOK" ("ID") +); + +CREATE TABLE "MEDIA" +( + "MEDIA_TYPE" varchar NULL, + "STATUS" varchar NOT NULL, + "CREATED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "LAST_MODIFIED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "COMMENT" varchar NULL, + "BOOK_ID" varchar NOT NULL PRIMARY KEY, + "PAGE_COUNT" integer NOT NULL DEFAULT 0, + "EXTENSION_CLASS" varchar NULL, + "_UNUSED" varchar NULL, + "EXTENSION_VALUE_BLOB" bytea NULL, + "EPUB_DIVINA_COMPATIBLE" boolean NOT NULL DEFAULT false, + "EPUB_IS_KEPUB" boolean NOT NULL DEFAULT false, + FOREIGN KEY ("BOOK_ID") REFERENCES "BOOK" ("ID") +); + +CREATE TABLE "READLIST" +( + "ID" varchar NOT NULL PRIMARY KEY, + "NAME" varchar NOT NULL, + "BOOK_COUNT" integer NOT NULL, + "CREATED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "LAST_MODIFIED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "SUMMARY" text NOT NULL DEFAULT '', + "ORDERED" boolean NOT NULL DEFAULT true +); + +CREATE TABLE "READLIST_BOOK" +( + "READLIST_ID" varchar NOT NULL, + "BOOK_ID" varchar NOT NULL, + "NUMBER" integer NOT NULL, + PRIMARY KEY ("READLIST_ID", "BOOK_ID"), + FOREIGN KEY ("READLIST_ID") REFERENCES "READLIST" ("ID"), + FOREIGN KEY ("BOOK_ID") REFERENCES "BOOK" ("ID") +); + +CREATE TABLE "SERIES_METADATA_GENRE" +( + "GENRE" varchar NOT NULL, + "SERIES_ID" varchar NOT NULL, + FOREIGN KEY ("SERIES_ID") REFERENCES "SERIES" ("ID") +); + +CREATE TABLE "SERIES_METADATA_TAG" +( + "TAG" varchar NOT NULL, + "SERIES_ID" varchar NOT NULL, + FOREIGN KEY ("SERIES_ID") REFERENCES "SERIES" ("ID") +); + +CREATE TABLE "BOOK_METADATA_TAG" +( + "TAG" varchar NOT NULL, + "BOOK_ID" varchar NOT NULL, + FOREIGN KEY ("BOOK_ID") REFERENCES "BOOK" ("ID") +); + +CREATE TABLE "BOOK_METADATA" +( + "CREATED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "LAST_MODIFIED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "NUMBER" varchar NOT NULL, + "NUMBER_LOCK" boolean NOT NULL DEFAULT false, + "NUMBER_SORT" real NOT NULL, + "NUMBER_SORT_LOCK" boolean NOT NULL DEFAULT false, + "RELEASE_DATE" date NULL, + "RELEASE_DATE_LOCK" boolean NOT NULL DEFAULT false, + "SUMMARY" text NOT NULL DEFAULT '', + "SUMMARY_LOCK" boolean NOT NULL DEFAULT false, + "TITLE" varchar NOT NULL, + "TITLE_LOCK" boolean NOT NULL DEFAULT false, + "AUTHORS_LOCK" boolean NOT NULL DEFAULT false, + "TAGS_LOCK" boolean NOT NULL DEFAULT false, + "BOOK_ID" varchar NOT NULL PRIMARY KEY, + "ISBN" varchar NOT NULL DEFAULT '', + "ISBN_LOCK" boolean NOT NULL DEFAULT false, + "LINKS_LOCK" boolean NOT NULL DEFAULT false, + FOREIGN KEY ("BOOK_ID") REFERENCES "BOOK" ("ID") +); + +CREATE TABLE "BOOK_METADATA_AGGREGATION" +( + "CREATED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "LAST_MODIFIED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "RELEASE_DATE" date NULL, + "SUMMARY" text NOT NULL DEFAULT '', + "SUMMARY_NUMBER" varchar NOT NULL DEFAULT '', + "SERIES_ID" varchar NOT NULL PRIMARY KEY, + FOREIGN KEY ("SERIES_ID") REFERENCES "SERIES" ("ID") +); + +CREATE TABLE "BOOK_METADATA_AGGREGATION_AUTHOR" +( + "NAME" varchar NOT NULL, + "ROLE" varchar NOT NULL, + "SERIES_ID" varchar NOT NULL, + FOREIGN KEY ("SERIES_ID") REFERENCES "SERIES" ("ID") +); + +CREATE TABLE "READ_PROGRESS_SERIES" +( + "SERIES_ID" varchar NOT NULL, + "USER_ID" varchar NOT NULL, + "READ_COUNT" integer NOT NULL, + "IN_PROGRESS_COUNT" integer NOT NULL, + "MOST_RECENT_READ_DATE" timestamp NULL, + "LAST_MODIFIED_DATE" timestamp NULL, + PRIMARY KEY ("SERIES_ID", "USER_ID"), + FOREIGN KEY ("SERIES_ID") REFERENCES "SERIES" ("ID"), + FOREIGN KEY ("USER_ID") REFERENCES "USER" ("ID") +); + +CREATE TABLE "SIDECAR" +( + "URL" varchar NOT NULL PRIMARY KEY, + "PARENT_URL" varchar NOT NULL, + "LAST_MODIFIED_TIME" timestamp NOT NULL, + "LIBRARY_ID" varchar NOT NULL +); + +CREATE TABLE "AUTHENTICATION_ACTIVITY" +( + "USER_ID" varchar NULL DEFAULT NULL, + "EMAIL" varchar NULL DEFAULT NULL, + "IP" varchar NULL DEFAULT NULL, + "USER_AGENT" varchar NULL DEFAULT NULL, + "SUCCESS" boolean NOT NULL, + "ERROR" varchar NULL DEFAULT NULL, + "DATE_TIME" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "SOURCE" varchar NULL DEFAULT NULL, + "API_KEY_ID" varchar NULL DEFAULT NULL, + "API_KEY_COMMENT" varchar NULL DEFAULT NULL, + FOREIGN KEY ("USER_ID") REFERENCES "USER" ("ID") +); + +CREATE TABLE "BOOK_METADATA_AGGREGATION_TAG" +( + "TAG" varchar NOT NULL, + "SERIES_ID" varchar NOT NULL, + FOREIGN KEY ("SERIES_ID") REFERENCES "SERIES" ("ID") +); + +CREATE TABLE "THUMBNAIL_SERIES" +( + "ID" varchar NOT NULL PRIMARY KEY, + "URL" varchar NULL DEFAULT NULL, + "SELECTED" boolean NOT NULL DEFAULT false, + "THUMBNAIL" bytea NULL DEFAULT NULL, + "TYPE" varchar NOT NULL, + "CREATED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "LAST_MODIFIED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "SERIES_ID" varchar NOT NULL, + "WIDTH" integer NOT NULL DEFAULT 0, + "HEIGHT" integer NOT NULL DEFAULT 0, + "MEDIA_TYPE" varchar NOT NULL DEFAULT '', + "FILE_SIZE" bigint NOT NULL DEFAULT 0, + FOREIGN KEY ("SERIES_ID") REFERENCES "SERIES" ("ID") +); + +CREATE TABLE "READ_PROGRESS" +( + "BOOK_ID" varchar NOT NULL, + "USER_ID" varchar NOT NULL, + "CREATED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "LAST_MODIFIED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "PAGE" integer NOT NULL, + "COMPLETED" boolean NOT NULL, + "READ_DATE" timestamp NULL DEFAULT CURRENT_TIMESTAMP, + "device_id" varchar DEFAULT '', + "device_name" varchar DEFAULT '', + "locator" bytea NULL, + PRIMARY KEY ("BOOK_ID", "USER_ID"), + FOREIGN KEY ("BOOK_ID") REFERENCES "BOOK" ("ID"), + FOREIGN KEY ("USER_ID") REFERENCES "USER" ("ID") +); + +CREATE TABLE "THUMBNAIL_COLLECTION" +( + "ID" varchar NOT NULL PRIMARY KEY, + "SELECTED" boolean NOT NULL DEFAULT false, + "THUMBNAIL" bytea NOT NULL, + "TYPE" varchar NOT NULL, + "COLLECTION_ID" varchar NOT NULL, + "CREATED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "LAST_MODIFIED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "WIDTH" integer NOT NULL DEFAULT 0, + "HEIGHT" integer NOT NULL DEFAULT 0, + "MEDIA_TYPE" varchar NOT NULL DEFAULT '', + "FILE_SIZE" bigint NOT NULL DEFAULT 0, + FOREIGN KEY ("COLLECTION_ID") REFERENCES "COLLECTION" ("ID") +); + +CREATE TABLE "THUMBNAIL_READLIST" +( + "ID" varchar NOT NULL PRIMARY KEY, + "SELECTED" boolean NOT NULL DEFAULT false, + "THUMBNAIL" bytea NOT NULL, + "TYPE" varchar NOT NULL, + "READLIST_ID" varchar NOT NULL, + "CREATED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "LAST_MODIFIED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "WIDTH" integer NOT NULL DEFAULT 0, + "HEIGHT" integer NOT NULL DEFAULT 0, + "MEDIA_TYPE" varchar NOT NULL DEFAULT '', + "FILE_SIZE" bigint NOT NULL DEFAULT 0, + FOREIGN KEY ("READLIST_ID") REFERENCES "READLIST" ("ID") +); + +CREATE TABLE "BOOK_METADATA_LINK" +( + "LABEL" varchar NOT NULL, + "URL" varchar NOT NULL, + "BOOK_ID" varchar NOT NULL, + FOREIGN KEY ("BOOK_ID") REFERENCES "BOOK" ("ID") +); + +CREATE TABLE "HISTORICAL_EVENT" +( + "ID" varchar NOT NULL PRIMARY KEY, + "TYPE" varchar NOT NULL, + "BOOK_ID" varchar NULL, + "SERIES_ID" varchar NULL, + "TIMESTAMP" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +CREATE TABLE "HISTORICAL_EVENT_PROPERTIES" +( + "ID" varchar NOT NULL, + "KEY" varchar NOT NULL, + "VALUE" varchar NOT NULL, + PRIMARY KEY ("ID", "KEY"), + FOREIGN KEY ("ID") REFERENCES "HISTORICAL_EVENT" ("ID") +); + +CREATE TABLE "SERIES_METADATA_SHARING" +( + "LABEL" varchar NOT NULL, + "SERIES_ID" varchar NOT NULL, + FOREIGN KEY ("SERIES_ID") REFERENCES "SERIES" ("ID") +); + +CREATE TABLE "USER_SHARING" +( + "LABEL" varchar NOT NULL, + "ALLOW" boolean NOT NULL, + "USER_ID" varchar NOT NULL, + PRIMARY KEY ("LABEL", "ALLOW", "USER_ID"), + FOREIGN KEY ("USER_ID") REFERENCES "USER" ("ID") +); + +CREATE TABLE "SERIES_METADATA_LINK" +( + "LABEL" varchar NOT NULL, + "URL" varchar NOT NULL, + "SERIES_ID" varchar NOT NULL, + FOREIGN KEY ("SERIES_ID") REFERENCES "SERIES" ("ID") +); + +CREATE TABLE "SERIES_METADATA_ALTERNATE_TITLE" +( + "LABEL" varchar NOT NULL, + "TITLE" varchar NOT NULL, + "SERIES_ID" varchar NOT NULL, + FOREIGN KEY ("SERIES_ID") REFERENCES "SERIES" ("ID") +); + +CREATE TABLE "PAGE_HASH" +( + "HASH" varchar NOT NULL PRIMARY KEY, + "SIZE" bigint NULL, + "ACTION" varchar NOT NULL, + "DELETE_COUNT" integer NOT NULL DEFAULT 0, + "CREATED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "LAST_MODIFIED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +CREATE TABLE "PAGE_HASH_THUMBNAIL" +( + "HASH" varchar NOT NULL PRIMARY KEY, + "THUMBNAIL" bytea NOT NULL +); + +CREATE TABLE "ANNOUNCEMENTS_READ" +( + "USER_ID" varchar NOT NULL, + "ANNOUNCEMENT_ID" varchar NOT NULL, + PRIMARY KEY ("USER_ID", "ANNOUNCEMENT_ID"), + FOREIGN KEY ("USER_ID") REFERENCES "USER" ("ID") +); + +CREATE TABLE "LIBRARY_EXCLUSIONS" +( + "LIBRARY_ID" varchar NOT NULL, + "EXCLUSION" varchar NOT NULL, + PRIMARY KEY ("LIBRARY_ID", "EXCLUSION"), + FOREIGN KEY ("LIBRARY_ID") REFERENCES "LIBRARY" ("ID") +); + +CREATE TABLE "SERVER_SETTINGS" +( + "KEY" varchar NOT NULL PRIMARY KEY, + "VALUE" varchar NULL +); + +CREATE TABLE "USER_API_KEY" +( + "ID" varchar NOT NULL PRIMARY KEY, + "USER_ID" varchar NOT NULL, + "CREATED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "LAST_MODIFIED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "API_KEY" varchar NOT NULL UNIQUE, + "COMMENT" varchar NOT NULL, + FOREIGN KEY ("USER_ID") REFERENCES "USER" ("ID") +); + +CREATE TABLE "SYNC_POINT" +( + "ID" varchar NOT NULL PRIMARY KEY, + "CREATED_DATE" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "USER_ID" varchar NOT NULL, + "API_KEY_ID" varchar NULL, + FOREIGN KEY ("USER_ID") REFERENCES "USER" ("ID") +); + +CREATE TABLE "SYNC_POINT_BOOK_REMOVED_SYNCED" +( + "SYNC_POINT_ID" varchar NOT NULL, + "BOOK_ID" varchar NOT NULL, + PRIMARY KEY ("SYNC_POINT_ID", "BOOK_ID"), + FOREIGN KEY ("SYNC_POINT_ID") REFERENCES "SYNC_POINT" ("ID") +); + +CREATE TABLE "SYNC_POINT_BOOK" +( + "SYNC_POINT_ID" varchar NOT NULL, + "BOOK_ID" varchar NOT NULL, + "BOOK_CREATED_DATE" timestamp NOT NULL, + "BOOK_LAST_MODIFIED_DATE" timestamp NOT NULL, + "BOOK_FILE_LAST_MODIFIED" timestamp NOT NULL, + "BOOK_FILE_SIZE" bigint NOT NULL, + "BOOK_FILE_HASH" varchar NOT NULL, + "BOOK_METADATA_LAST_MODIFIED_DATE" timestamp NOT NULL, + "BOOK_READ_PROGRESS_LAST_MODIFIED_DATE" timestamp NULL, + "SYNCED" boolean NOT NULL DEFAULT false, + "BOOK_THUMBNAIL_ID" varchar NULL, + PRIMARY KEY ("SYNC_POINT_ID", "BOOK_ID"), + FOREIGN KEY ("SYNC_POINT_ID") REFERENCES "SYNC_POINT" ("ID") +); + +CREATE TABLE "SYNC_POINT_READLIST" +( + "SYNC_POINT_ID" varchar NOT NULL, + "READLIST_ID" varchar NOT NULL, + "READLIST_NAME" varchar NOT NULL, + "READLIST_CREATED_DATE" timestamp NOT NULL, + "READLIST_LAST_MODIFIED_DATE" timestamp NOT NULL, + "SYNCED" boolean NOT NULL DEFAULT false, + PRIMARY KEY ("SYNC_POINT_ID", "READLIST_ID"), + FOREIGN KEY ("SYNC_POINT_ID") REFERENCES "SYNC_POINT" ("ID") +); + +CREATE TABLE "SYNC_POINT_READLIST_BOOK" +( + "SYNC_POINT_ID" varchar NOT NULL, + "READLIST_ID" varchar NOT NULL, + "BOOK_ID" varchar NOT NULL, + PRIMARY KEY ("SYNC_POINT_ID", "READLIST_ID", "BOOK_ID"), + FOREIGN KEY ("SYNC_POINT_ID") REFERENCES "SYNC_POINT" ("ID") +); + +CREATE TABLE "SYNC_POINT_READLIST_REMOVED_SYNCED" +( + "SYNC_POINT_ID" varchar NOT NULL, + "READLIST_ID" varchar NOT NULL, + PRIMARY KEY ("SYNC_POINT_ID", "READLIST_ID"), + FOREIGN KEY ("SYNC_POINT_ID") REFERENCES "SYNC_POINT" ("ID") +); + +CREATE TABLE "USER_ROLE" +( + "USER_ID" varchar NOT NULL, + "ROLE" varchar NOT NULL, + PRIMARY KEY ("USER_ID", "ROLE"), + FOREIGN KEY ("USER_ID") REFERENCES "USER" ("ID") +); + +CREATE TABLE "CLIENT_SETTINGS_GLOBAL" +( + "KEY" varchar NOT NULL PRIMARY KEY, + "VALUE" varchar NOT NULL, + "ALLOW_UNAUTHORIZED" boolean NOT NULL DEFAULT false +); + +CREATE TABLE "CLIENT_SETTINGS_USER" +( + "USER_ID" varchar NOT NULL, + "KEY" varchar NOT NULL, + "VALUE" varchar NOT NULL, + PRIMARY KEY ("KEY", "USER_ID"), + FOREIGN KEY ("USER_ID") REFERENCES "USER" ("ID") +); + +-- Indices +CREATE INDEX "idx__thumbnail_book__book_id" on "THUMBNAIL_BOOK" ("BOOK_ID"); +CREATE INDEX "idx__series_metadata_sharing__series_id" on "SERIES_METADATA_SHARING" ("SERIES_ID"); +CREATE INDEX "idx__book_metadata_aggregation_tag__series_id" on "BOOK_METADATA_AGGREGATION_TAG" ("SERIES_ID"); +CREATE INDEX "idx__thumbnail_collection__collection_id" on "THUMBNAIL_COLLECTION" ("COLLECTION_ID"); +CREATE INDEX "idx__thumbnail_readlist__readlist_id" on "THUMBNAIL_READLIST" ("READLIST_ID"); +CREATE INDEX "idx__thumbnail_series__series_id" on "THUMBNAIL_SERIES" ("SERIES_ID"); +CREATE INDEX "idx__authentication_activity__user_id" on "AUTHENTICATION_ACTIVITY" ("USER_ID"); +CREATE INDEX "idx__book_metadata__number_sort" on "BOOK_METADATA" ("NUMBER_SORT"); +CREATE INDEX "idx__series__last_modified_date" on "SERIES" ("LAST_MODIFIED_DATE"); +CREATE INDEX "idx__series__created_date" on "SERIES" ("CREATED_DATE"); +CREATE INDEX "idx__book_metadata__release_date" on "BOOK_METADATA" ("RELEASE_DATE"); +CREATE INDEX "idx__read_progress__last_modified_date" on "READ_PROGRESS" ("LAST_MODIFIED_DATE"); +CREATE INDEX "idx__media__status" on "MEDIA" ("STATUS"); +CREATE INDEX "idx__series_metadata_link__series_id" on "SERIES_METADATA_LINK" ("SERIES_ID"); +CREATE INDEX "idx__series_metadata_alternate_title__series_id" on "SERIES_METADATA_ALTERNATE_TITLE" ("SERIES_ID"); +CREATE INDEX "idx__series_metadata__title" on "SERIES_METADATA" ("TITLE"); +CREATE INDEX "idx__library_exclusions__library_id" on "LIBRARY_EXCLUSIONS" ("LIBRARY_ID"); +CREATE INDEX "idx__thumbnail_book__width" on "THUMBNAIL_BOOK" ("WIDTH"); +CREATE INDEX "idx__thumbnail_book__height" on "THUMBNAIL_BOOK" ("HEIGHT"); +CREATE INDEX "idx__thumbnail_book__file_size" on "THUMBNAIL_BOOK" ("FILE_SIZE"); +CREATE INDEX "idx__user_api_key__user_id" on "USER_API_KEY" ("USER_ID"); +CREATE INDEX "idx__sync_point__user_id" on "SYNC_POINT" ("USER_ID"); +CREATE INDEX "idx__sync_point_book_removed_status__sync_point_id" on "SYNC_POINT_BOOK_REMOVED_SYNCED" ("SYNC_POINT_ID"); +CREATE INDEX "idx__sync_point_book__sync_point_id" on "SYNC_POINT_BOOK" ("SYNC_POINT_ID"); +CREATE INDEX "idx__sync_point_readlist__sync_point_id" on "SYNC_POINT_READLIST" ("SYNC_POINT_ID"); +CREATE INDEX "idx__sync_point_readlist_book__sync_point_id_readlist_id" on "SYNC_POINT_READLIST_BOOK" ("SYNC_POINT_ID", "READLIST_ID"); +CREATE INDEX "idx__book_metadata_link__book_id" on "BOOK_METADATA_LINK" ("BOOK_ID"); +CREATE INDEX "idx__book__series_id" on "BOOK" ("SERIES_ID"); +CREATE INDEX "idx__book__library_id" on "BOOK" ("LIBRARY_ID"); +CREATE INDEX "idx__book_metadata_author__book_id" on "BOOK_METADATA_AUTHOR" ("BOOK_ID"); +CREATE INDEX "idx__book_metadata_tag__book_id" on "BOOK_METADATA_TAG" ("BOOK_ID"); +CREATE INDEX "idx__media_file__book_id" on "MEDIA_FILE" ("BOOK_ID"); +CREATE INDEX "idx__series__library_id" on "SERIES" ("LIBRARY_ID"); +CREATE INDEX "idx__series_metadata_genre__series_id" on "SERIES_METADATA_GENRE" ("SERIES_ID"); +CREATE INDEX "idx__series_metadata_tag__series_id" on "SERIES_METADATA_TAG" ("SERIES_ID"); +CREATE INDEX "idx__book_metadata_aggregation_author__series_id" on "BOOK_METADATA_AGGREGATION_AUTHOR" ("SERIES_ID"); +CREATE INDEX "idx__book__created_date" on "BOOK" ("CREATED_DATE"); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20200706141854__initial_migration.sql b/komga/src/flyway/resources/db/migration/postgresql/V20200706141854__initial_migration.sql deleted file mode 100644 index b1150687..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20200706141854__initial_migration.sql +++ /dev/null @@ -1,194 +0,0 @@ -CREATE TABLE LIBRARY -( - ID varchar NOT NULL PRIMARY KEY, - CREATED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - LAST_MODIFIED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - NAME varchar NOT NULL, - ROOT varchar NOT NULL, - IMPORT_COMICINFO_BOOK boolean NOT NULL DEFAULT true, - IMPORT_COMICINFO_SERIES boolean NOT NULL DEFAULT true, - IMPORT_COMICINFO_COLLECTION boolean NOT NULL DEFAULT true, - IMPORT_EPUB_BOOK boolean NOT NULL DEFAULT true, - IMPORT_EPUB_SERIES boolean NOT NULL DEFAULT true -); - -CREATE TABLE "USER" -( - ID varchar NOT NULL PRIMARY KEY, - CREATED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - LAST_MODIFIED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - EMAIL varchar NOT NULL UNIQUE, - PASSWORD varchar NOT NULL, - SHARED_ALL_LIBRARIES boolean NOT NULL DEFAULT true, - ROLE_ADMIN boolean NOT NULL DEFAULT false, - ROLE_FILE_DOWNLOAD boolean NOT NULL DEFAULT true, - ROLE_PAGE_STREAMING boolean NOT NULL DEFAULT true -); - -CREATE TABLE USER_LIBRARY_SHARING -( - USER_ID varchar NOT NULL, - LIBRARY_ID varchar NOT NULL, - PRIMARY KEY (USER_ID, LIBRARY_ID), - FOREIGN KEY (USER_ID) REFERENCES "USER" (ID), - FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (ID) -); - -CREATE TABLE SERIES -( - ID varchar NOT NULL PRIMARY KEY, - CREATED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - LAST_MODIFIED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - FILE_LAST_MODIFIED timestamp NOT NULL, - NAME varchar NOT NULL, - URL varchar NOT NULL, - LIBRARY_ID varchar NOT NULL, - FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (ID) -); - -CREATE TABLE SERIES_METADATA -( - CREATED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - LAST_MODIFIED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - STATUS varchar NOT NULL, - STATUS_LOCK boolean NOT NULL DEFAULT false, - TITLE varchar NOT NULL, - TITLE_LOCK boolean NOT NULL DEFAULT false, - TITLE_SORT varchar NOT NULL, - TITLE_SORT_LOCK boolean NOT NULL DEFAULT false, - SUMMARY text, - SUMMARY_LOCK boolean NOT NULL DEFAULT false, - PUBLISHER varchar, - PUBLISHER_LOCK boolean NOT NULL DEFAULT false, - READING_DIRECTION varchar, - READING_DIRECTION_LOCK boolean NOT NULL DEFAULT false, - AGE_RATING integer, - AGE_RATING_LOCK boolean NOT NULL DEFAULT false, - LANGUAGE varchar, - LANGUAGE_LOCK boolean NOT NULL DEFAULT false, - SERIES_ID varchar NOT NULL PRIMARY KEY, - FOREIGN KEY (SERIES_ID) REFERENCES SERIES (ID) -); - -CREATE TABLE BOOK -( - ID varchar NOT NULL PRIMARY KEY, - CREATED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - LAST_MODIFIED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - FILE_LAST_MODIFIED timestamp NOT NULL, - NAME varchar NOT NULL, - URL varchar NOT NULL, - FILE_SIZE bigint NOT NULL, - NUMBER integer, - SERIES_ID varchar NOT NULL, - FOREIGN KEY (SERIES_ID) REFERENCES SERIES (ID) -); - -CREATE TABLE MEDIA -( - MEDIA_TYPE varchar NULL, - STATUS varchar NOT NULL, - THUMBNAIL bytea NULL, - CREATED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - LAST_MODIFIED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - COMMENT varchar NULL, - BOOK_ID varchar NOT NULL PRIMARY KEY, - PAGE_COUNT integer NOT NULL DEFAULT 0, - FOREIGN KEY (BOOK_ID) REFERENCES BOOK (ID) -); - -CREATE TABLE MEDIA_PAGE -( - FILE_NAME varchar NOT NULL, - MEDIA_TYPE varchar NOT NULL, - NUMBER integer NOT NULL, - BOOK_ID varchar NOT NULL, - PRIMARY KEY (BOOK_ID, NUMBER), - FOREIGN KEY (BOOK_ID) REFERENCES BOOK (ID) -); - -CREATE TABLE MEDIA_FILE -( - FILE_NAME varchar NOT NULL, - BOOK_ID varchar NOT NULL, - FOREIGN KEY (BOOK_ID) REFERENCES BOOK (ID) -); - -CREATE TABLE BOOK_METADATA -( - CREATED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - LAST_MODIFIED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - TITLE varchar NOT NULL, - TITLE_LOCK boolean NOT NULL DEFAULT false, - TITLE_SORT varchar NOT NULL, - TITLE_SORT_LOCK boolean NOT NULL DEFAULT false, - SUMMARY text, - SUMMARY_LOCK boolean NOT NULL DEFAULT false, - NUMBER varchar, - NUMBER_LOCK boolean NOT NULL DEFAULT false, - NUMBER_SORT double precision, - NUMBER_SORT_LOCK boolean NOT NULL DEFAULT false, - RELEASE_DATE date, - RELEASE_DATE_LOCK boolean NOT NULL DEFAULT false, - AUTHORS text, - AUTHORS_LOCK boolean NOT NULL DEFAULT false, - BOOK_ID varchar NOT NULL PRIMARY KEY, - FOREIGN KEY (BOOK_ID) REFERENCES BOOK (ID) -); - -CREATE TABLE READ_PROGRESS -( - CREATED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - LAST_MODIFIED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - PAGE integer NOT NULL, - COMPLETED boolean NOT NULL DEFAULT false, - USER_ID varchar NOT NULL, - BOOK_ID varchar NOT NULL, - PRIMARY KEY (USER_ID, BOOK_ID), - FOREIGN KEY (USER_ID) REFERENCES "USER" (ID), - FOREIGN KEY (BOOK_ID) REFERENCES BOOK (ID) -); - -CREATE TABLE READLIST -( - ID varchar NOT NULL PRIMARY KEY, - CREATED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - LAST_MODIFIED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - NAME varchar NOT NULL, - SUMMARY text, - FILTERED boolean NOT NULL DEFAULT false, - USER_ID varchar NOT NULL, - FOREIGN KEY (USER_ID) REFERENCES "USER" (ID) -); - -CREATE TABLE READLIST_BOOKS -( - READLIST_ID varchar NOT NULL, - BOOK_ID varchar NOT NULL, - NUMBER integer NOT NULL, - PRIMARY KEY (READLIST_ID, BOOK_ID), - FOREIGN KEY (READLIST_ID) REFERENCES READLIST (ID), - FOREIGN KEY (BOOK_ID) REFERENCES BOOK (ID) -); - -CREATE TABLE COLLECTION -( - ID varchar NOT NULL PRIMARY KEY, - CREATED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - LAST_MODIFIED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - NAME varchar NOT NULL, - SUMMARY text, - FILTERED boolean NOT NULL DEFAULT false, - USER_ID varchar NOT NULL, - FOREIGN KEY (USER_ID) REFERENCES "USER" (ID) -); - -CREATE TABLE COLLECTION_SERIES -( - COLLECTION_ID varchar NOT NULL, - SERIES_ID varchar NOT NULL, - NUMBER integer NOT NULL, - PRIMARY KEY (COLLECTION_ID, SERIES_ID), - FOREIGN KEY (COLLECTION_ID) REFERENCES COLLECTION (ID), - FOREIGN KEY (SERIES_ID) REFERENCES SERIES (ID) -); \ No newline at end of file diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20200730135746__image_dimension.sql b/komga/src/flyway/resources/db/migration/postgresql/V20200730135746__image_dimension.sql deleted file mode 100644 index ac166e78..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20200730135746__image_dimension.sql +++ /dev/null @@ -1,4 +0,0 @@ -alter table media_page - add column width int NULL; -alter table media_page - add column height int NULL; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20200810154729__thumbnails_part_1.sql b/komga/src/flyway/resources/db/migration/postgresql/V20200810154729__thumbnails_part_1.sql deleted file mode 100644 index 0ea40f03..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20200810154729__thumbnails_part_1.sql +++ /dev/null @@ -1,13 +0,0 @@ --- This is a multi-steps migration, mixing 2 SQL migrations and a Java migration in-between -CREATE TABLE THUMBNAIL_BOOK -( - ID varchar NOT NULL PRIMARY KEY, - THUMBNAIL bytea NULL, - URL varchar NULL, - SELECTED boolean NOT NULL DEFAULT false, - TYPE varchar NOT NULL, - CREATED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - LAST_MODIFIED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - BOOK_ID varchar NOT NULL, - FOREIGN KEY (BOOK_ID) REFERENCES BOOK (ID) -); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20200810165912__thumbnails_part_3.sql b/komga/src/flyway/resources/db/migration/postgresql/V20200810165912__thumbnails_part_3.sql deleted file mode 100644 index 541ad5ff..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20200810165912__thumbnails_part_3.sql +++ /dev/null @@ -1,26 +0,0 @@ --- This is a multi-steps migration, mixing 2 SQL migrations and a Java migration in-between -CREATE INDEX idx__thumbnail_book__book_id on THUMBNAIL_BOOK (BOOK_ID); - --- Remove column THUMBNAIL from table MEDIA - -ALTER TABLE MEDIA - RENAME TO _MEDIA_OLD; - -CREATE TABLE MEDIA -( - MEDIA_TYPE varchar NULL, - STATUS varchar NOT NULL, - CREATED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - LAST_MODIFIED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - COMMENT varchar NULL, - BOOK_ID varchar NOT NULL PRIMARY KEY, - PAGE_COUNT integer NOT NULL DEFAULT 0, - FOREIGN KEY (BOOK_ID) REFERENCES BOOK (ID) -); - -INSERT INTO MEDIA (MEDIA_TYPE, STATUS, CREATED_DATE, LAST_MODIFIED_DATE, COMMENT, BOOK_ID, PAGE_COUNT) -SELECT MEDIA_TYPE, STATUS, CREATED_DATE, LAST_MODIFIED_DATE, COMMENT, BOOK_ID, PAGE_COUNT -FROM _MEDIA_OLD; - -DROP TABLE _MEDIA_OLD; - diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20200812161631__thumbnails_series.sql b/komga/src/flyway/resources/db/migration/postgresql/V20200812161631__thumbnails_series.sql deleted file mode 100644 index 120d48b3..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20200812161631__thumbnails_series.sql +++ /dev/null @@ -1,10 +0,0 @@ -CREATE TABLE THUMBNAIL_SERIES -( - ID varchar NOT NULL PRIMARY KEY, - URL varchar NOT NULL, - SELECTED boolean NOT NULL DEFAULT false, - CREATED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - LAST_MODIFIED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - SERIES_ID varchar NOT NULL, - FOREIGN KEY (SERIES_ID) REFERENCES SERIES (ID) -); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20200814142406__library_scan_options.sql b/komga/src/flyway/resources/db/migration/postgresql/V20200814142406__library_scan_options.sql deleted file mode 100644 index fe4e411e..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20200814142406__library_scan_options.sql +++ /dev/null @@ -1,4 +0,0 @@ -alter table library - add column SCAN_FORCE_MODIFIED_TIME boolean NOT NULL DEFAULT false; -alter table library - add column SCAN_DEEP boolean NOT NULL DEFAULT false; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20200814145800__library_import_local_artwork.sql b/komga/src/flyway/resources/db/migration/postgresql/V20200814145800__library_import_local_artwork.sql deleted file mode 100644 index 06c2665b..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20200814145800__library_import_local_artwork.sql +++ /dev/null @@ -1,2 +0,0 @@ -alter table library - add column IMPORT_LOCAL_ARTWORK boolean NOT NULL DEFAULT true; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20200817115957__readlists.sql b/komga/src/flyway/resources/db/migration/postgresql/V20200817115957__readlists.sql deleted file mode 100644 index 2c5f11cf..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20200817115957__readlists.sql +++ /dev/null @@ -1,20 +0,0 @@ -CREATE TABLE READLIST -( - ID varchar NOT NULL PRIMARY KEY, - NAME varchar NOT NULL, - BOOK_COUNT int NOT NULL, - CREATED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - LAST_MODIFIED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP -); -CREATE TABLE READLIST_BOOK -( - READLIST_ID varchar NOT NULL, - BOOK_ID varchar NOT NULL, - NUMBER int NOT NULL, - PRIMARY KEY (READLIST_ID, BOOK_ID), - FOREIGN KEY (READLIST_ID) REFERENCES READLIST (ID), - FOREIGN KEY (BOOK_ID) REFERENCES BOOK (ID) -); - -alter table library - add column IMPORT_COMICINFO_READLIST boolean NOT NULL DEFAULT true; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20200820141405__metadata_fields_part_1.sql b/komga/src/flyway/resources/db/migration/postgresql/V20200820141405__metadata_fields_part_1.sql deleted file mode 100644 index 1de38d22..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20200820141405__metadata_fields_part_1.sql +++ /dev/null @@ -1,52 +0,0 @@ -alter table series_metadata - add column PUBLISHER varchar NOT NULL DEFAULT ''; -alter table series_metadata - add column PUBLISHER_LOCK boolean NOT NULL DEFAULT false; - -alter table series_metadata - add column READING_DIRECTION varchar NULL; -alter table series_metadata - add column READING_DIRECTION_LOCK boolean NOT NULL DEFAULT false; - -alter table series_metadata - add column AGE_RATING int NULL; -alter table series_metadata - add column AGE_RATING_LOCK boolean NOT NULL DEFAULT false; - -alter table SERIES_METADATA - add column SUMMARY varchar NOT NULL DEFAULT ''; -alter table SERIES_METADATA - add column SUMMARY_LOCK boolean NOT NULL DEFAULT false; - -alter table SERIES_METADATA - add column LANGUAGE varchar NOT NULL DEFAULT ''; -alter table SERIES_METADATA - add column LANGUAGE_LOCK boolean NOT NULL DEFAULT false; - -alter table SERIES_METADATA - add column GENRES_LOCK boolean NOT NULL DEFAULT false; - -alter table SERIES_METADATA - add column TAGS_LOCK boolean NOT NULL DEFAULT false; - - -CREATE TABLE SERIES_METADATA_GENRE -( - GENRE varchar NOT NULL, - SERIES_ID varchar NOT NULL, - FOREIGN KEY (SERIES_ID) REFERENCES SERIES (ID) -); - -CREATE TABLE SERIES_METADATA_TAG -( - TAG varchar NOT NULL, - SERIES_ID varchar NOT NULL, - FOREIGN KEY (SERIES_ID) REFERENCES SERIES (ID) -); - -CREATE TABLE BOOK_METADATA_TAG -( - TAG varchar NOT NULL, - BOOK_ID varchar NOT NULL, - FOREIGN KEY (BOOK_ID) REFERENCES BOOK (ID) -); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20200820154318__metadata_fields_part_3.sql b/komga/src/flyway/resources/db/migration/postgresql/V20200820154318__metadata_fields_part_3.sql deleted file mode 100644 index a6ae9d21..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20200820154318__metadata_fields_part_3.sql +++ /dev/null @@ -1,45 +0,0 @@ - -ALTER TABLE BOOK_METADATA - RENAME TO _BOOK_METADATA_OLD; - -CREATE TABLE BOOK_METADATA -( - CREATED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - LAST_MODIFIED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - NUMBER varchar NOT NULL, - NUMBER_LOCK boolean NOT NULL DEFAULT false, - NUMBER_SORT real NOT NULL, - NUMBER_SORT_LOCK boolean NOT NULL DEFAULT false, - RELEASE_DATE date NULL, - RELEASE_DATE_LOCK boolean NOT NULL DEFAULT false, - SUMMARY varchar NOT NULL DEFAULT '', - SUMMARY_LOCK boolean NOT NULL DEFAULT false, - TITLE varchar NOT NULL, - TITLE_LOCK boolean NOT NULL DEFAULT false, - AUTHORS_LOCK boolean NOT NULL DEFAULT false, - TAGS_LOCK boolean NOT NULL DEFAULT false, - BOOK_ID varchar NOT NULL PRIMARY KEY, - FOREIGN KEY (BOOK_ID) REFERENCES BOOK (ID) -); - -INSERT INTO BOOK_METADATA (CREATED_DATE, LAST_MODIFIED_DATE, NUMBER, NUMBER_LOCK, NUMBER_SORT, NUMBER_SORT_LOCK, - RELEASE_DATE, RELEASE_DATE_LOCK, SUMMARY, SUMMARY_LOCK, TITLE, TITLE_LOCK, AUTHORS_LOCK, - BOOK_ID) -SELECT CREATED_DATE, - LAST_MODIFIED_DATE, - NUMBER, - NUMBER_LOCK, - NUMBER_SORT, - NUMBER_SORT_LOCK, - RELEASE_DATE, - RELEASE_DATE_LOCK, - SUMMARY, - SUMMARY_LOCK, - TITLE, - TITLE_LOCK, - AUTHORS_LOCK, - BOOK_ID -FROM _BOOK_METADATA_OLD; - -DROP TABLE _BOOK_METADATA_OLD; - diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20200827103627__index.sql b/komga/src/flyway/resources/db/migration/postgresql/V20200827103627__index.sql deleted file mode 100644 index 6b90d95f..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20200827103627__index.sql +++ /dev/null @@ -1,15 +0,0 @@ -CREATE INDEX idx__book__series_id on BOOK (SERIES_ID); -CREATE INDEX idx__book__library_id on BOOK (LIBRARY_ID); - -CREATE INDEX idx__book_metadata_author__book_id on BOOK_METADATA_AUTHOR (BOOK_ID); -CREATE INDEX idx__book_metadata_tag__book_id on BOOK_METADATA_TAG (BOOK_ID); - -CREATE INDEX idx__media_file__book_id on MEDIA_FILE (BOOK_ID); - - -CREATE INDEX idx__series__library_id on SERIES (LIBRARY_ID); - -CREATE INDEX idx__series_metadata_genre__series_id on SERIES_METADATA_GENRE (SERIES_ID); -CREATE INDEX idx__series_metadata_tag__series_id on SERIES_METADATA_TAG (SERIES_ID); - -CREATE INDEX idx__thumbnail_series__series_id on THUMBNAIL_SERIES (SERIES_ID); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20200906115600__lower_trim_tags.sql b/komga/src/flyway/resources/db/migration/postgresql/V20200906115600__lower_trim_tags.sql deleted file mode 100644 index a49a7b0b..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20200906115600__lower_trim_tags.sql +++ /dev/null @@ -1,37 +0,0 @@ -UPDATE BOOK_METADATA_TAG -SET tag = lower(trim(tag)); - -delete -from BOOK_METADATA_TAG -where ROWID not in - ( - select min(rowid) - from BOOK_METADATA_TAG - group by tag, BOOK_ID - ); - - -UPDATE SERIES_METADATA_TAG -SET tag = lower(trim(tag)); - -delete -from SERIES_METADATA_TAG -where ROWID not in - ( - select min(rowid) - from SERIES_METADATA_TAG - group by tag, SERIES_ID - ); - - -UPDATE SERIES_METADATA_GENRE -SET GENRE = lower(trim(GENRE)); - -delete -from SERIES_METADATA_GENRE -where ROWID not in - ( - select min(rowid) - from SERIES_METADATA_GENRE - group by GENRE, SERIES_ID - ); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210111113543__book_metadata_aggregation.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210111113543__book_metadata_aggregation.sql deleted file mode 100644 index 60d55782..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210111113543__book_metadata_aggregation.sql +++ /dev/null @@ -1,20 +0,0 @@ -CREATE TABLE BOOK_METADATA_AGGREGATION -( - CREATED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - LAST_MODIFIED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - RELEASE_DATE date NULL, - SUMMARY varchar NOT NULL DEFAULT '', - SUMMARY_NUMBER varchar NOT NULL DEFAULT '', - SERIES_ID varchar NOT NULL PRIMARY KEY, - FOREIGN KEY (SERIES_ID) REFERENCES SERIES (ID) -); -CREATE TABLE BOOK_METADATA_AGGREGATION_AUTHOR -( - NAME varchar NOT NULL, - ROLE varchar NOT NULL, - SERIES_ID varchar NOT NULL, - FOREIGN KEY (SERIES_ID) REFERENCES SERIES (ID) -); -INSERT INTO BOOK_METADATA_AGGREGATION(SERIES_ID) -SELECT ID -from SERIES; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210308163522__book_isbn.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210308163522__book_isbn.sql deleted file mode 100644 index b03e617e..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210308163522__book_isbn.sql +++ /dev/null @@ -1,7 +0,0 @@ -alter table library - add column IMPORT_BARCODE_ISBN boolean NOT NULL DEFAULT true; - -alter table book_metadata - add column ISBN varchar NOT NULL DEFAULT ''; -alter table book_metadata - add column ISBN_LOCK boolean NOT NULL DEFAULT false; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210504171645__library_convert_to_cbz.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210504171645__library_convert_to_cbz.sql deleted file mode 100644 index b2d4f3c0..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210504171645__library_convert_to_cbz.sql +++ /dev/null @@ -1,2 +0,0 @@ -alter table library - add column CONVERT_TO_CBZ boolean NOT NULL DEFAULT false; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210505150806__library_repair_extensions.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210505150806__library_repair_extensions.sql deleted file mode 100644 index 68383060..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210505150806__library_repair_extensions.sql +++ /dev/null @@ -1,2 +0,0 @@ -alter table library - add column REPAIR_EXTENSIONS boolean NOT NULL DEFAULT false; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210517145427__fix_rar.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210517145427__fix_rar.sql deleted file mode 100644 index 96e034e8..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210517145427__fix_rar.sql +++ /dev/null @@ -1,18 +0,0 @@ --- fix media type for files analyzed with tika 1.23 or before which didn't get the rar version -update MEDIA -set MEDIA_TYPE = 'application/x-rar-compressed; version=4' -where MEDIA_TYPE = 'application/x-rar-compressed' - and STATUS = 'READY'; - --- rar files that could have had an incorrect analysis are marked at OUTDATED to be ra-analyzed -update MEDIA -set STATUS = 'OUTDATED' -where BOOK_ID in ( - select F.BOOK_ID - from MEDIA_FILE F - left join MEDIA M on F.BOOK_ID = M.BOOK_ID - where F.FILE_NAME like '%.%' - and M.MEDIA_TYPE like 'application/x-rar-compressed%' - and lower(replace(F.FILE_NAME, rtrim(F.FILE_NAME, replace(F.FILE_NAME, '.', '')), '')) - in ('jpg', 'jpeg', 'webp', 'tiff', 'tif', 'gif', 'png', 'bmp') - ); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210525172240__index.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210525172240__index.sql deleted file mode 100644 index 2ba70dfc..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210525172240__index.sql +++ /dev/null @@ -1 +0,0 @@ -CREATE INDEX idx__book_metadata_aggregation_author__series_id on BOOK_METADATA_AGGREGATION_AUTHOR (SERIES_ID); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210526113555__series_book_count.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210526113555__series_book_count.sql deleted file mode 100644 index ac6f342a..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210526113555__series_book_count.sql +++ /dev/null @@ -1,29 +0,0 @@ -alter table SERIES - add column BOOK_COUNT int NOT NULL DEFAULT false; - -update SERIES -set BOOK_COUNT = ( - SELECT COUNT(b.ID) - FROM BOOK b - WHERE b.SERIES_ID = SERIES.ID - ); - -CREATE TABLE READ_PROGRESS_SERIES -( - SERIES_ID varchar NOT NULL, - USER_ID varchar NOT NULL, - READ_COUNT int NOT NULL, - IN_PROGRESS_COUNT int NOT NULL, - PRIMARY KEY (SERIES_ID, USER_ID), - FOREIGN KEY (SERIES_ID) REFERENCES SERIES (ID), - FOREIGN KEY (USER_ID) REFERENCES "USER" (ID) -); - -insert into READ_PROGRESS_SERIES -select BOOK.SERIES_ID, - READ_PROGRESS.USER_ID, - sum(case when READ_PROGRESS.COMPLETED = 1 then 1 else 0 end) as READ_COUNT, - sum(case when READ_PROGRESS.COMPLETED = 0 then 1 else 0 end) as IN_PROGRESS_COUNT -from BOOK - inner join READ_PROGRESS on (BOOK.ID = READ_PROGRESS.BOOK_ID) -group by BOOK.SERIES_ID, READ_PROGRESS.USER_ID; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210527100741__index_book_created.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210527100741__index_book_created.sql deleted file mode 100644 index b7c0682e..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210527100741__index_book_created.sql +++ /dev/null @@ -1,2 +0,0 @@ -create index idx__book__created_date on BOOK (CREATED_DATE); - diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210609165742__sidecars.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210609165742__sidecars.sql deleted file mode 100644 index ecd70cfa..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210609165742__sidecars.sql +++ /dev/null @@ -1,7 +0,0 @@ -CREATE TABLE SIDECAR -( - URL varchar NOT NULL PRIMARY KEY, - PARENT_URL varchar NOT NULL, - LAST_MODIFIED_TIME timestamp NOT NULL, - LIBRARY_ID varchar NOT NULL -); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210617114814__sidecar_cleanup.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210617114814__sidecar_cleanup.sql deleted file mode 100644 index 254e7418..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210617114814__sidecar_cleanup.sql +++ /dev/null @@ -1,6 +0,0 @@ -DELETE -FROM SIDECAR -WHERE LIBRARY_ID NOT IN ( - SELECT ID - FROM LIBRARY - ) diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210625155626__authentication_activity.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210625155626__authentication_activity.sql deleted file mode 100644 index 0b165c38..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210625155626__authentication_activity.sql +++ /dev/null @@ -1,11 +0,0 @@ -create table AUTHENTICATION_ACTIVITY -( - USER_ID varchar NULL DEFAULT NULL, - EMAIL varchar NULL DEFAULT NULL, - IP varchar NULL DEFAULT NULL, - USER_AGENT varchar NULL DEFAULT NULL, - SUCCESS boolean NOT NULL, - ERROR varchar NULL DEFAULT NULL, - DATE_TIME timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - FOREIGN KEY (USER_ID) references "USER" (ID) -); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210706162229__trash_bin.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210706162229__trash_bin.sql deleted file mode 100644 index 75dc791e..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210706162229__trash_bin.sql +++ /dev/null @@ -1,11 +0,0 @@ -ALTER TABLE BOOK - ADD COLUMN FILE_HASH varchar NOT NULL DEFAULT ''; - -ALTER TABLE BOOK - ADD COLUMN DELETED_DATE timestamp NULL DEFAULT NULL; - -ALTER TABLE SERIES - ADD COLUMN DELETED_DATE timestamp NULL DEFAULT NULL; - -alter table library - add column EMPTY_TRASH_AFTER_SCAN boolean NOT NULL DEFAULT false; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210716153910__library_import_mylar_metadata.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210716153910__library_import_mylar_metadata.sql deleted file mode 100644 index a83f047d..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210716153910__library_import_mylar_metadata.sql +++ /dev/null @@ -1,2 +0,0 @@ -alter table library - add column IMPORT_MYLAR_SERIES boolean NOT NULL DEFAULT true; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210726140759__cover_preference.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210726140759__cover_preference.sql deleted file mode 100644 index 101e523c..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210726140759__cover_preference.sql +++ /dev/null @@ -1,2 +0,0 @@ -alter table library - add column SERIES_COVER varchar NOT NULL DEFAULT 'FIRST'; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210727102041__full_text_search.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210727102041__full_text_search.sql deleted file mode 100644 index 3bbf602e..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210727102041__full_text_search.sql +++ /dev/null @@ -1,83 +0,0 @@ --- FTS for BOOK_METADATA -create virtual table fts_book_metadata using fts5(title, isbn, book_id UNINDEXED, content=book_metadata, tokenize = 'porter unicode61 remove_diacritics 2'); -INSERT INTO fts_book_metadata(fts_book_metadata) VALUES('rebuild'); - --- Triggers to keep the FTS index up to date -CREATE TRIGGER book_metadata__after_insert AFTER INSERT ON book_metadata BEGIN - INSERT INTO fts_book_metadata(rowid, title, isbn, book_id) VALUES (new.rowid, new.title, new.isbn, new.book_id); -END; -CREATE TRIGGER book_metadata__after_delete AFTER DELETE ON book_metadata BEGIN - INSERT INTO fts_book_metadata(fts_book_metadata, rowid, title, isbn, book_id) VALUES('delete', old.rowid, old.title, old.isbn, old.book_id); -END; -CREATE TRIGGER book_metadata__after_update AFTER UPDATE ON book_metadata BEGIN - INSERT INTO fts_book_metadata(fts_book_metadata, rowid, title, isbn, book_id) VALUES('delete', old.rowid, old.title, old.isbn, old.book_id); - INSERT INTO fts_book_metadata(rowid, title, isbn, book_id) VALUES (new.rowid, new.title, new.isbn, new.book_id); -END; - - --- FTS for SERIES_METADATA -create virtual table fts_series_metadata using fts5(title, publisher, series_id UNINDEXED, content=series_metadata, tokenize = 'porter unicode61 remove_diacritics 2'); -INSERT INTO fts_series_metadata(fts_series_metadata) VALUES('rebuild'); - --- Triggers to keep the FTS index up to date -CREATE TRIGGER series_metadata__after_insert AFTER INSERT ON series_metadata BEGIN - INSERT INTO fts_series_metadata(rowid, title, publisher, series_id) VALUES (new.rowid, new.title, new.publisher, new.series_id); -END; -CREATE TRIGGER series_metadata__after_delete AFTER DELETE ON series_metadata BEGIN - INSERT INTO fts_series_metadata(fts_series_metadata, rowid, title, publisher, series_id) VALUES('delete', old.rowid, old.title, old.publisher, old.series_id); -END; -CREATE TRIGGER series_metadata__after_update AFTER UPDATE ON series_metadata BEGIN - INSERT INTO fts_series_metadata(fts_series_metadata, rowid, title, publisher, series_id) VALUES('delete', old.rowid, old.title, old.publisher, old.series_id); - INSERT INTO fts_series_metadata(rowid, title, publisher, series_id) VALUES (new.rowid, new.title, new.publisher, new.series_id); -END; - - --- FTS for COLLECTION -create virtual table fts_collection using fts5(name, id UNINDEXED, content=collection, tokenize = 'porter unicode61 remove_diacritics 2'); -INSERT INTO fts_collection(fts_collection) VALUES('rebuild'); - --- Triggers to keep the FTS index up to date -CREATE TRIGGER collection__after_insert AFTER INSERT ON collection BEGIN - INSERT INTO fts_collection(rowid, name, id) VALUES (new.rowid, new.name, new.id); -END; -CREATE TRIGGER collection__after_delete AFTER DELETE ON collection BEGIN - INSERT INTO fts_collection(fts_collection, rowid, name, id) VALUES('delete', old.rowid, old.name, old.id); -END; -CREATE TRIGGER collection__after_update AFTER UPDATE ON collection BEGIN - INSERT INTO fts_collection(fts_collection, rowid, name, id) VALUES('delete', old.rowid, old.name, old.id); - INSERT INTO fts_collection(rowid, name, id) VALUES (new.rowid, new.name, new.id); -END; - - --- FTS for READLIST -create virtual table fts_readlist using fts5(name, id UNINDEXED, content=readlist, tokenize = 'porter unicode61 remove_diacritics 2'); -INSERT INTO fts_readlist(fts_readlist) VALUES('rebuild'); - --- Triggers to keep the FTS index up to date -CREATE TRIGGER readlist__after_insert AFTER INSERT ON readlist BEGIN - INSERT INTO fts_readlist(rowid, name, id) VALUES (new.rowid, new.name, new.id); -END; -CREATE TRIGGER readlist__after_delete AFTER DELETE ON readlist BEGIN - INSERT INTO fts_readlist(fts_readlist, rowid, name, id) VALUES('delete', old.rowid, old.name, old.id); -END; -CREATE TRIGGER readlist__after_update AFTER UPDATE ON readlist BEGIN - INSERT INTO fts_readlist(fts_readlist, rowid, name, id) VALUES('delete', old.rowid, old.name, old.id); - INSERT INTO fts_readlist(rowid, name, id) VALUES (new.rowid, new.name, new.id); -END; - - --- FTS for BOOK_METADATA_AGGREGATION_AUTHORS -create virtual table fts_book_metadata_aggregation_author using fts5(name, series_id UNINDEXED, content=book_metadata_aggregation_author, tokenize = 'porter unicode61 remove_diacritics 2'); -INSERT INTO fts_book_metadata_aggregation_author(fts_book_metadata_aggregation_author) VALUES('rebuild'); - --- Triggers to keep the FTS index up to date -CREATE TRIGGER book_metadata_aggregation_author__after_insert AFTER INSERT ON book_metadata_aggregation_author BEGIN - INSERT INTO fts_book_metadata_aggregation_author(rowid, name, series_id) VALUES (new.rowid, new.name, new.series_id); -END; -CREATE TRIGGER book_metadata_aggregation_author__after_delete AFTER DELETE ON book_metadata_aggregation_author BEGIN - INSERT INTO fts_book_metadata_aggregation_author(fts_book_metadata_aggregation_author, rowid, name, series_id) VALUES('delete', old.rowid, old.name, old.series_id); -END; -CREATE TRIGGER book_metadata_aggregation_author__after_update AFTER UPDATE ON book_metadata_aggregation_author BEGIN - INSERT INTO fts_book_metadata_aggregation_author(fts_book_metadata_aggregation_author, rowid, name, series_id) VALUES('delete', old.rowid, old.name, old.series_id); - INSERT INTO fts_book_metadata_aggregation_author(rowid, name, series_id) VALUES (new.rowid, new.name, new.series_id); -END; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210729173532__series_metadata_total_book_count.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210729173532__series_metadata_total_book_count.sql deleted file mode 100644 index 7b33d140..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210729173532__series_metadata_total_book_count.sql +++ /dev/null @@ -1,4 +0,0 @@ -alter table series_metadata - add column TOTAL_BOOK_COUNT int NULL; -alter table series_metadata - add column TOTAL_BOOK_COUNT_LOCK boolean NOT NULL DEFAULT false; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210730111835__book_metadata_aggregation_tag.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210730111835__book_metadata_aggregation_tag.sql deleted file mode 100644 index 3aa42d3f..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210730111835__book_metadata_aggregation_tag.sql +++ /dev/null @@ -1,12 +0,0 @@ -CREATE TABLE BOOK_METADATA_AGGREGATION_TAG -( - TAG varchar NOT NULL, - SERIES_ID varchar NOT NULL, - FOREIGN KEY (SERIES_ID) REFERENCES SERIES (ID) -); - --- aggregate existing data -insert into BOOK_METADATA_AGGREGATION_TAG -select distinct bt.TAG, b.SERIES_ID -from BOOK_METADATA_TAG bt - left join BOOK B on B.ID = bt.BOOK_ID; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210730151147__readlist_summary.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210730151147__readlist_summary.sql deleted file mode 100644 index e68907cf..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210730151147__readlist_summary.sql +++ /dev/null @@ -1,2 +0,0 @@ -alter table readlist - add column SUMMARY varchar not NULL default ''; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210805174355__remove_full_text_search.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210805174355__remove_full_text_search.sql deleted file mode 100644 index b0f4a6f5..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210805174355__remove_full_text_search.sql +++ /dev/null @@ -1,24 +0,0 @@ -drop table fts_book_metadata; -DROP TRIGGER book_metadata__after_insert; -DROP TRIGGER book_metadata__after_delete; -DROP TRIGGER book_metadata__after_update; - -drop table fts_series_metadata; -DROP TRIGGER series_metadata__after_insert; -DROP TRIGGER series_metadata__after_delete; -DROP TRIGGER series_metadata__after_update; - -drop table fts_collection; -DROP TRIGGER collection__after_insert; -DROP TRIGGER collection__after_delete; -DROP TRIGGER collection__after_update; - -drop table fts_readlist; -DROP TRIGGER readlist__after_insert; -DROP TRIGGER readlist__after_delete; -DROP TRIGGER readlist__after_update; - -drop table fts_book_metadata_aggregation_author; -DROP TRIGGER book_metadata_aggregation_author__after_insert; -DROP TRIGGER book_metadata_aggregation_author__after_delete; -DROP TRIGGER book_metadata_aggregation_author__after_update; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210816113108__library_unavailable.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210816113108__library_unavailable.sql deleted file mode 100644 index ae206840..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210816113108__library_unavailable.sql +++ /dev/null @@ -1,2 +0,0 @@ -ALTER TABLE LIBRARY - ADD COLUMN UNAVAILABLE_DATE timestamp NULL DEFAULT NULL; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210831113524__temp_table_urls.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210831113524__temp_table_urls.sql deleted file mode 100644 index 1f32483f..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210831113524__temp_table_urls.sql +++ /dev/null @@ -1,4 +0,0 @@ -CREATE TABLE TEMP_URL_LIST -( - URL varchar NOT NULL -); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210902100930__series_thumbnail_blob.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210902100930__series_thumbnail_blob.sql deleted file mode 100644 index 4e0c5758..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210902100930__series_thumbnail_blob.sql +++ /dev/null @@ -1,20 +0,0 @@ -ALTER TABLE THUMBNAIL_SERIES RENAME TO TMP_THUMBNAIL_SERIES; - -CREATE TABLE THUMBNAIL_SERIES -( - ID varchar NOT NULL PRIMARY KEY, - URL varchar NULL DEFAULT NULL, - SELECTED boolean NOT NULL DEFAULT false, - THUMBNAIL bytea NULL DEFAULT NULL, - TYPE varchar not null, - CREATED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - LAST_MODIFIED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - SERIES_ID varchar NOT NULL, - FOREIGN KEY (SERIES_ID) REFERENCES SERIES (ID) -); - -INSERT INTO THUMBNAIL_SERIES(ID, URL, SELECTED, CREATED_DATE, LAST_MODIFIED_DATE, SERIES_ID, TYPE) -SELECT ID, URL, SELECTED, CREATED_DATE, LAST_MODIFIED_DATE, SERIES_ID, "SIDECAR" AS TYPE -FROM TMP_THUMBNAIL_SERIES; - -DROP TABLE TMP_THUMBNAIL_SERIES; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210906163333__series_metadata_lowercase_language.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210906163333__series_metadata_lowercase_language.sql deleted file mode 100644 index 8af8f66f..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210906163333__series_metadata_lowercase_language.sql +++ /dev/null @@ -1,2 +0,0 @@ -update SERIES_METADATA -set language = lower(language); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210907115532__spring_session.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210907115532__spring_session.sql deleted file mode 100644 index eeb03127..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210907115532__spring_session.sql +++ /dev/null @@ -1,24 +0,0 @@ -CREATE TABLE SPRING_SESSION -( - PRIMARY_ID CHARACTER(36) NOT NULL, - SESSION_ID CHARACTER(36) NOT NULL, - CREATION_TIME INTEGER NOT NULL, - LAST_ACCESS_TIME INTEGER NOT NULL, - MAX_INACTIVE_INTERVAL INTEGER NOT NULL, - EXPIRY_TIME INTEGER NOT NULL, - PRINCIPAL_NAME VARCHAR(100), - CONSTRAINT SPRING_SESSION_PK PRIMARY KEY (PRIMARY_ID) -); - -CREATE UNIQUE INDEX SPRING_SESSION_IX1 ON SPRING_SESSION (SESSION_ID); -CREATE INDEX SPRING_SESSION_IX2 ON SPRING_SESSION (EXPIRY_TIME); -CREATE INDEX SPRING_SESSION_IX3 ON SPRING_SESSION (PRINCIPAL_NAME); - -CREATE TABLE SPRING_SESSION_ATTRIBUTES -( - SESSION_PRIMARY_ID CHAR(36) NOT NULL, - ATTRIBUTE_NAME VARCHAR(200) NOT NULL, - ATTRIBUTE_BYTES bytea NOT NULL, - CONSTRAINT SPRING_SESSION_ATTRIBUTES_PK PRIMARY KEY (SESSION_PRIMARY_ID, ATTRIBUTE_NAME), - CONSTRAINT SPRING_SESSION_ATTRIBUTES_FK FOREIGN KEY (SESSION_PRIMARY_ID) REFERENCES SPRING_SESSION (PRIMARY_ID) ON DELETE CASCADE -); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210914111439__read_progress_read_date.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210914111439__read_progress_read_date.sql deleted file mode 100644 index d31b36f4..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210914111439__read_progress_read_date.sql +++ /dev/null @@ -1,21 +0,0 @@ -ALTER TABLE READ_PROGRESS RENAME TO TMP_READ_PROGRESS; - -CREATE TABLE READ_PROGRESS -( - BOOK_ID varchar NOT NULL, - USER_ID varchar NOT NULL, - CREATED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - LAST_MODIFIED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - PAGE int NOT NULL, - COMPLETED boolean NOT NULL, - READ_DATE timestamp NULL DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY (BOOK_ID, USER_ID), - FOREIGN KEY (BOOK_ID) REFERENCES BOOK (ID), - FOREIGN KEY (USER_ID) REFERENCES "USER" (ID) -); - -INSERT INTO READ_PROGRESS(BOOK_ID, USER_ID, CREATED_DATE, LAST_MODIFIED_DATE, PAGE, COMPLETED, READ_DATE) -SELECT BOOK_ID, USER_ID, CREATED_DATE, LAST_MODIFIED_DATE, PAGE, COMPLETED, LAST_MODIFIED_DATE -FROM TMP_READ_PROGRESS; - -DROP TABLE TMP_READ_PROGRESS; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20210926222612__authentication_activity_source.sql b/komga/src/flyway/resources/db/migration/postgresql/V20210926222612__authentication_activity_source.sql deleted file mode 100644 index 23d92a65..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20210926222612__authentication_activity_source.sql +++ /dev/null @@ -1,2 +0,0 @@ -ALTER TABLE AUTHENTICATION_ACTIVITY - ADD COLUMN SOURCE varchar NULL DEFAULT NULL; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20211006141333__remove_spring_session.sql b/komga/src/flyway/resources/db/migration/postgresql/V20211006141333__remove_spring_session.sql deleted file mode 100644 index c376f04a..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20211006141333__remove_spring_session.sql +++ /dev/null @@ -1,2 +0,0 @@ -drop table if exists SPRING_SESSION_ATTRIBUTES; -drop table if exists SPRING_SESSION; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20211206100610__temp_table_ids.sql b/komga/src/flyway/resources/db/migration/postgresql/V20211206100610__temp_table_ids.sql deleted file mode 100644 index 7f6d7b09..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20211206100610__temp_table_ids.sql +++ /dev/null @@ -1,6 +0,0 @@ -CREATE TABLE TEMP_STRING_LIST -( - STRING varchar NOT NULL -); - -DROP TABLE TEMP_URL_LIST; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20211206124920__collection_and_readlist_thumbnails.sql b/komga/src/flyway/resources/db/migration/postgresql/V20211206124920__collection_and_readlist_thumbnails.sql deleted file mode 100644 index 400be839..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20211206124920__collection_and_readlist_thumbnails.sql +++ /dev/null @@ -1,23 +0,0 @@ -CREATE TABLE THUMBNAIL_COLLECTION -( - ID varchar NOT NULL PRIMARY KEY, - SELECTED boolean NOT NULL DEFAULT false, - THUMBNAIL bytea NOT NULL, - TYPE varchar NOT NULL, - COLLECTION_ID varchar NOT NULL, - CREATED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - LAST_MODIFIED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - FOREIGN KEY (COLLECTION_ID) REFERENCES COLLECTION (ID) -); - -CREATE TABLE THUMBNAIL_READLIST -( - ID varchar NOT NULL PRIMARY KEY, - SELECTED boolean NOT NULL DEFAULT false, - THUMBNAIL bytea NOT NULL, - TYPE varchar NOT NULL, - READLIST_ID varchar NOT NULL, - CREATED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - LAST_MODIFIED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - FOREIGN KEY (READLIST_ID) REFERENCES READLIST (ID) -); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20211228152113__book_metadata_link.sql b/komga/src/flyway/resources/db/migration/postgresql/V20211228152113__book_metadata_link.sql deleted file mode 100644 index 1655e8e5..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20211228152113__book_metadata_link.sql +++ /dev/null @@ -1,10 +0,0 @@ -CREATE TABLE BOOK_METADATA_LINK -( - LABEL varchar NOT NULL, - URL varchar NOT NULL, - BOOK_ID varchar NOT NULL, - FOREIGN KEY (BOOK_ID) REFERENCES BOOK (ID) -); - -alter table book_metadata - add column LINKS_LOCK boolean NOT NULL DEFAULT false; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20220101120232__page_hash.sql b/komga/src/flyway/resources/db/migration/postgresql/V20220101120232__page_hash.sql deleted file mode 100644 index 9de5e685..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20220101120232__page_hash.sql +++ /dev/null @@ -1,2 +0,0 @@ -ALTER TABLE MEDIA_PAGE - ADD COLUMN FILE_HASH varchar NOT NULL DEFAULT ''; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20220105143154__library_hashing_options.sql b/komga/src/flyway/resources/db/migration/postgresql/V20220105143154__library_hashing_options.sql deleted file mode 100644 index c693aa45..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20220105143154__library_hashing_options.sql +++ /dev/null @@ -1,6 +0,0 @@ -alter table library - add column HASH_FILES boolean NOT NULL DEFAULT ${library-file-hashing}; -alter table library - add column HASH_PAGES boolean NOT NULL DEFAULT false; -alter table library - add column ANALYZE_DIMENSIONS boolean NOT NULL DEFAULT true; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20220106143755__page_file_size.sql b/komga/src/flyway/resources/db/migration/postgresql/V20220106143755__page_file_size.sql deleted file mode 100644 index c0d319e8..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20220106143755__page_file_size.sql +++ /dev/null @@ -1,2 +0,0 @@ -alter table media_page - add column FILE_SIZE bigint NULL; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20220128152310__page_hash.sql b/komga/src/flyway/resources/db/migration/postgresql/V20220128152310__page_hash.sql deleted file mode 100644 index 6b4c2375..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20220128152310__page_hash.sql +++ /dev/null @@ -1,30 +0,0 @@ -CREATE TABLE PAGE_HASH -( - HASH varchar NOT NULL, - MEDIA_TYPE varchar NOT NULL, - SIZE bigint NULL, - ACTION varchar NOT NULL, - DELETE_COUNT int NOT NULL DEFAULT false, - CREATED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - LAST_MODIFIED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY (HASH, MEDIA_TYPE, SIZE) -); - -CREATE TABLE PAGE_HASH_THUMBNAIL -( - HASH varchar NOT NULL, - MEDIA_TYPE varchar NOT NULL, - SIZE bigint NULL, - THUMBNAIL bytea NOT NULL, - PRIMARY KEY (HASH, MEDIA_TYPE, SIZE) -); - -UPDATE MEDIA_PAGE -SET FILE_HASH = '' -WHERE BOOK_ID IN ( - SELECT DISTINCT m.BOOK_ID - FROM MEDIA m - LEFT JOIN MEDIA_PAGE MP on m.BOOK_ID = MP.BOOK_ID - WHERE mp.FILE_HASH <> '' - AND m.MEDIA_TYPE <> 'application/zip' -); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20220208193203__fix_books_with_missing_pages.sql b/komga/src/flyway/resources/db/migration/postgresql/V20220208193203__fix_books_with_missing_pages.sql deleted file mode 100644 index 5bbb95db..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20220208193203__fix_books_with_missing_pages.sql +++ /dev/null @@ -1,8 +0,0 @@ -UPDATE MEDIA -SET STATUS = 'OUTDATED' -WHERE BOOK_ID IN ( - SELECT M.BOOK_ID - FROM MEDIA M - LEFT JOIN MEDIA_PAGE MP on M.BOOK_ID = MP.BOOK_ID - GROUP BY M.BOOK_ID, M.PAGE_COUNT - HAVING M.PAGE_COUNT <> count(MP.BOOK_ID)); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20220218111455__historical_events.sql b/komga/src/flyway/resources/db/migration/postgresql/V20220218111455__historical_events.sql deleted file mode 100644 index 66a266cc..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20220218111455__historical_events.sql +++ /dev/null @@ -1,17 +0,0 @@ -CREATE TABLE HISTORICAL_EVENT -( - ID varchar PRIMARY KEY, - TYPE varchar NOT NULL, - BOOK_ID varchar NULL, - SERIES_ID varchar NULL, - TIMESTAMP timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP -); - -CREATE TABLE HISTORICAL_EVENT_PROPERTIES -( - ID varchar NOT NULL, - KEY varchar NOT NULL, - VALUE varchar NOT NULL, - PRIMARY KEY (ID, KEY), - FOREIGN KEY (ID) REFERENCES HISTORICAL_EVENT (ID) -); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20220224112015__series_sharing_labels.sql b/komga/src/flyway/resources/db/migration/postgresql/V20220224112015__series_sharing_labels.sql deleted file mode 100644 index 81e0313a..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20220224112015__series_sharing_labels.sql +++ /dev/null @@ -1,9 +0,0 @@ -CREATE TABLE SERIES_METADATA_SHARING -( - LABEL varchar NOT NULL, - SERIES_ID varchar NOT NULL, - FOREIGN KEY (SERIES_ID) REFERENCES SERIES (ID) -); - -alter table SERIES_METADATA - add column SHARING_LABELS_LOCK boolean NOT NULL DEFAULT false; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20220225164240__user_restrictions.sql b/komga/src/flyway/resources/db/migration/postgresql/V20220225164240__user_restrictions.sql deleted file mode 100644 index 5404395c..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20220225164240__user_restrictions.sql +++ /dev/null @@ -1,13 +0,0 @@ -CREATE TABLE USER_SHARING -( - LABEL varchar NOT NULL, - ALLOW boolean NOT NULL, - USER_ID varchar NOT NULL, - PRIMARY KEY (LABEL, ALLOW, USER_ID), - FOREIGN KEY (USER_ID) REFERENCES "USER" (ID) -); - -ALTER TABLE "USER" - add column AGE_RESTRICTION integer NULL; -ALTER TABLE "USER" - add column AGE_RESTRICTION_ALLOW_ONLY boolean NULL; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20220715213721__perf_indices.sql b/komga/src/flyway/resources/db/migration/postgresql/V20220715213721__perf_indices.sql deleted file mode 100644 index c07827c7..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20220715213721__perf_indices.sql +++ /dev/null @@ -1,31 +0,0 @@ --- missing foreign key indices -create index if not exists idx__book_metadata_link__book_id - on BOOK_METADATA_LINK (BOOK_ID); -create index if not exists idx__series_metadata_sharing__series_id - on SERIES_METADATA_SHARING (SERIES_ID); -create index if not exists idx__book_metadata_aggregation_tag__series_id - on BOOK_METADATA_AGGREGATION_TAG (SERIES_ID); -create index if not exists idx__thumbnail_collection__collection_id - on THUMBNAIL_COLLECTION (COLLECTION_ID); -create index if not exists idx__thumbnail_readlist__readlist_id - on THUMBNAIL_READLIST (READLIST_ID); -create index if not exists idx__thumbnail_series__series_id - on THUMBNAIL_SERIES (SERIES_ID); -create index if not exists idx__authentication_activity__user_id - on AUTHENTICATION_ACTIVITY (USER_ID); - --- if you sort by it, index it -create index if not exists idx__book_metadata__number_sort - on BOOK_METADATA (NUMBER_SORT); -create index if not exists idx__series__last_modified_date - on SERIES (LAST_MODIFIED_DATE); -create index if not exists idx__series__created_date - on SERIES (CREATED_DATE); -create index if not exists idx__book_metadata__release_date - on BOOK_METADATA (RELEASE_DATE); -create index if not exists idx__book__created_date - on BOOK (CREATED_DATE); -create index if not exists idx__read_progress__last_modified_date - on READ_PROGRESS (LAST_MODIFIED_DATE); -create index if not exists idx__media__status - on MEDIA (STATUS); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20230112151202__library_comicinfo_append_volume.sql b/komga/src/flyway/resources/db/migration/postgresql/V20230112151202__library_comicinfo_append_volume.sql deleted file mode 100644 index e54379e9..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20230112151202__library_comicinfo_append_volume.sql +++ /dev/null @@ -1,2 +0,0 @@ -ALTER TABLE LIBRARY - add column IMPORT_COMICINFO_SERIES_APPEND_VOLUME boolean NOT NULL DEFAULT true; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20230113140806__series_metadata_link.sql b/komga/src/flyway/resources/db/migration/postgresql/V20230113140806__series_metadata_link.sql deleted file mode 100644 index 4c52c931..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20230113140806__series_metadata_link.sql +++ /dev/null @@ -1,13 +0,0 @@ -CREATE TABLE SERIES_METADATA_LINK -( - LABEL varchar NOT NULL, - URL varchar NOT NULL, - SERIES_ID varchar NOT NULL, - FOREIGN KEY (SERIES_ID) REFERENCES SERIES (ID) -); - -alter table series_metadata - add column LINKS_LOCK boolean NOT NULL DEFAULT false; - -create index idx__series_metadata_link__series_id - on SERIES_METADATA_LINK (SERIES_ID); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20230116112647__series_alternate_title.sql b/komga/src/flyway/resources/db/migration/postgresql/V20230116112647__series_alternate_title.sql deleted file mode 100644 index d879f64e..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20230116112647__series_alternate_title.sql +++ /dev/null @@ -1,13 +0,0 @@ -CREATE TABLE SERIES_METADATA_ALTERNATE_TITLE -( - LABEL varchar NOT NULL, - TITLE varchar NOT NULL, - SERIES_ID varchar NOT NULL, - FOREIGN KEY (SERIES_ID) REFERENCES SERIES (ID) -); - -alter table series_metadata - add column ALTERNATE_TITLES_LOCK boolean NOT NULL DEFAULT false; - -create index idx__series_metadata_alternate_title__series_id - on SERIES_METADATA_ALTERNATE_TITLE (SERIES_ID); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20230221170726__readlist_ordered.sql b/komga/src/flyway/resources/db/migration/postgresql/V20230221170726__readlist_ordered.sql deleted file mode 100644 index fc5882d5..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20230221170726__readlist_ordered.sql +++ /dev/null @@ -1,2 +0,0 @@ -alter table READLIST - add column ORDERED boolean NOT NULL DEFAULT true; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20230310121946__series_metadata_index.sql b/komga/src/flyway/resources/db/migration/postgresql/V20230310121946__series_metadata_index.sql deleted file mode 100644 index 4e869ce5..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20230310121946__series_metadata_index.sql +++ /dev/null @@ -1,2 +0,0 @@ -create index if not exists idx__series_metadata__title - on SERIES_METADATA (TITLE); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20230626150454__xxhash128.sql b/komga/src/flyway/resources/db/migration/postgresql/V20230626150454__xxhash128.sql deleted file mode 100644 index 6c6c76fd..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20230626150454__xxhash128.sql +++ /dev/null @@ -1,4 +0,0 @@ -delete from PAGE_HASH; -delete from PAGE_HASH_THUMBNAIL; -update BOOK set FILE_HASH = ''; -update MEDIA_PAGE set FILE_HASH = ''; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20230626151717__missing_page_size.sql b/komga/src/flyway/resources/db/migration/postgresql/V20230626151717__missing_page_size.sql deleted file mode 100644 index c28dceea..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20230626151717__missing_page_size.sql +++ /dev/null @@ -1,8 +0,0 @@ -update media -set STATUS = 'OUTDATED' -WHERE BOOK_ID in - (select distinct M.BOOK_ID - from MEDIA_PAGE P - inner join MEDIA M on P.BOOK_ID = M.BOOK_ID - where M.MEDIA_TYPE in ('application/zip', 'application/x-rar-compressed; version=4') - and P.FILE_SIZE is null); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20230626170856__page_hash_remove_columns.sql b/komga/src/flyway/resources/db/migration/postgresql/V20230626170856__page_hash_remove_columns.sql deleted file mode 100644 index 0e09f7cc..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20230626170856__page_hash_remove_columns.sql +++ /dev/null @@ -1,33 +0,0 @@ -ALTER TABLE PAGE_HASH - RENAME TO _PAGE_HASH_OLD; - -CREATE TABLE PAGE_HASH -( - HASH varchar NOT NULL PRIMARY KEY, - SIZE bigint NULL, - ACTION varchar NOT NULL, - DELETE_COUNT int NOT NULL DEFAULT false, - CREATED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - LAST_MODIFIED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP -); - -INSERT INTO PAGE_HASH(HASH, ACTION, SIZE, DELETE_COUNT, CREATED_DATE, LAST_MODIFIED_DATE) -SELECT HASH, ACTION, SIZE, DELETE_COUNT, CREATED_DATE, LAST_MODIFIED_DATE -FROM _PAGE_HASH_OLD; - -DROP TABLE _PAGE_HASH_OLD; - -ALTER TABLE PAGE_HASH_THUMBNAIL - RENAME TO _PAGE_HASH_THUMBNAIL_OLD; - -CREATE TABLE PAGE_HASH_THUMBNAIL -( - HASH varchar NOT NULL PRIMARY KEY, - THUMBNAIL bytea NOT NULL -); - -INSERT INTO PAGE_HASH_THUMBNAIL(HASH, THUMBNAIL) -SELECT HASH, THUMBNAIL -FROM _PAGE_HASH_THUMBNAIL_OLD; - -DROP TABLE _PAGE_HASH_THUMBNAIL_OLD; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20230629114356__remove_library_scandeep_column.sql b/komga/src/flyway/resources/db/migration/postgresql/V20230629114356__remove_library_scandeep_column.sql deleted file mode 100644 index fa4477ed..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20230629114356__remove_library_scandeep_column.sql +++ /dev/null @@ -1,2 +0,0 @@ -ALTER TABLE LIBRARY - RENAME COLUMN SCAN_DEEP to _UNUSED; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20230711173700__read_announcements.sql b/komga/src/flyway/resources/db/migration/postgresql/V20230711173700__read_announcements.sql deleted file mode 100644 index 41d35ada..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20230711173700__read_announcements.sql +++ /dev/null @@ -1,7 +0,0 @@ -create table ANNOUNCEMENTS_READ -( - USER_ID varchar NOT NULL, - ANNOUNCEMENT_ID varchar NOT NULL, - PRIMARY KEY (USER_ID, ANNOUNCEMENT_ID), - FOREIGN KEY (USER_ID) references "USER" (ID) -); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20230724114349__oneshots.sql b/komga/src/flyway/resources/db/migration/postgresql/V20230724114349__oneshots.sql deleted file mode 100644 index 6d0e74f1..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20230724114349__oneshots.sql +++ /dev/null @@ -1,8 +0,0 @@ -alter table BOOK - add column oneshot boolean NOT NULL DEFAULT false; - -alter table SERIES - add column oneshot boolean NOT NULL DEFAULT false; - -ALTER TABLE LIBRARY - add column ONESHOTS_DIRECTORY varchar NULL DEFAULT NULL; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20230918114751__library_settings.sql b/komga/src/flyway/resources/db/migration/postgresql/V20230918114751__library_settings.sql deleted file mode 100644 index 5d6feee2..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20230918114751__library_settings.sql +++ /dev/null @@ -1,12 +0,0 @@ -ALTER TABLE LIBRARY - RENAME COLUMN _UNUSED to SCAN_STARTUP; -UPDATE LIBRARY -SET SCAN_STARTUP = ${library-scan-startup}; -ALTER TABLE LIBRARY - add column SCAN_CBX boolean NOT NULL DEFAULT true; -ALTER TABLE LIBRARY - add column SCAN_PDF boolean NOT NULL DEFAULT true; -ALTER TABLE LIBRARY - add column SCAN_EPUB boolean NOT NULL DEFAULT true; -ALTER TABLE LIBRARY - add column SCAN_INTERVAL varchar NOT NULL DEFAULT 'EVERY_6H'; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20230921112923__library_directory_exclusions.sql b/komga/src/flyway/resources/db/migration/postgresql/V20230921112923__library_directory_exclusions.sql deleted file mode 100644 index b52b72fc..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20230921112923__library_directory_exclusions.sql +++ /dev/null @@ -1,17 +0,0 @@ -CREATE TABLE LIBRARY_EXCLUSIONS -( - LIBRARY_ID varchar NOT NULL, - EXCLUSION varchar NOT NULL, - PRIMARY KEY (LIBRARY_ID, EXCLUSION), - FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (ID) -); - -CREATE INDEX idx__library_exclusions__library_id on LIBRARY_EXCLUSIONS (LIBRARY_ID); - -INSERT INTO LIBRARY_EXCLUSIONS -WITH cte_exclusions(exclude) AS (VALUES ('#recycle'), - ('@eaDir'), - ('@Recycle')) -SELECT LIBRARY.ID, cte_exclusions.exclude -FROM LIBRARY - cross join cte_exclusions; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20230922143307__server_settings.sql b/komga/src/flyway/resources/db/migration/postgresql/V20230922143307__server_settings.sql deleted file mode 100644 index 3ef044e3..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20230922143307__server_settings.sql +++ /dev/null @@ -1,14 +0,0 @@ -CREATE TABLE SERVER_SETTINGS -( - KEY varchar NOT NULL PRIMARY KEY, - VALUE varchar NULL -); - -INSERT INTO SERVER_SETTINGS -VALUES ('DELETE_EMPTY_COLLECTIONS', ${delete-empty-collections}); -INSERT INTO SERVER_SETTINGS -VALUES ('DELETE_EMPTY_READLISTS', ${delete-empty-read-lists}); -INSERT INTO SERVER_SETTINGS -VALUES ('REMEMBER_ME_KEY', md5(random()::text)); -INSERT INTO SERVER_SETTINGS -VALUES ('REMEMBER_ME_DURATION', 365); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20231005165322__thumbnails_additional_info.sql b/komga/src/flyway/resources/db/migration/postgresql/V20231005165322__thumbnails_additional_info.sql deleted file mode 100644 index 859f933a..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20231005165322__thumbnails_additional_info.sql +++ /dev/null @@ -1,36 +0,0 @@ -ALTER TABLE main.THUMBNAIL_BOOK - add column WIDTH int NOT NULL DEFAULT false; -ALTER TABLE main.THUMBNAIL_BOOK - add column HEIGHT int NOT NULL DEFAULT false; -ALTER TABLE main.THUMBNAIL_BOOK - add column MEDIA_TYPE varchar NOT NULL default ''; -ALTER TABLE main.THUMBNAIL_BOOK - add column FILE_SIZE bigint NOT NULL DEFAULT false; - -ALTER TABLE main.THUMBNAIL_SERIES - add column WIDTH int NOT NULL DEFAULT false; -ALTER TABLE main.THUMBNAIL_SERIES - add column HEIGHT int NOT NULL DEFAULT false; -ALTER TABLE main.THUMBNAIL_SERIES - add column MEDIA_TYPE varchar NOT NULL default ''; -ALTER TABLE main.THUMBNAIL_SERIES - add column FILE_SIZE bigint NOT NULL DEFAULT false; - -ALTER TABLE main.THUMBNAIL_COLLECTION - add column WIDTH int NOT NULL DEFAULT false; -ALTER TABLE main.THUMBNAIL_COLLECTION - add column HEIGHT int NOT NULL DEFAULT false; -ALTER TABLE main.THUMBNAIL_COLLECTION - add column MEDIA_TYPE varchar NOT NULL default ''; -ALTER TABLE main.THUMBNAIL_COLLECTION - add column FILE_SIZE bigint NOT NULL DEFAULT false; - -ALTER TABLE main.THUMBNAIL_READLIST - add column WIDTH int NOT NULL DEFAULT false; -ALTER TABLE main.THUMBNAIL_READLIST - add column HEIGHT int NOT NULL DEFAULT false; -ALTER TABLE main.THUMBNAIL_READLIST - add column MEDIA_TYPE varchar NOT NULL default ''; -ALTER TABLE main.THUMBNAIL_READLIST - add column FILE_SIZE bigint NOT NULL DEFAULT false; - diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20231026164836__thumbnail_book_indices.sql b/komga/src/flyway/resources/db/migration/postgresql/V20231026164836__thumbnail_book_indices.sql deleted file mode 100644 index e405ae3d..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20231026164836__thumbnail_book_indices.sql +++ /dev/null @@ -1,6 +0,0 @@ -create index idx__thumbnail_book__width - on THUMBNAIL_BOOK (WIDTH); -create index idx__thumbnail_book__height - on THUMBNAIL_BOOK (HEIGHT); -create index idx__thumbnail_book__file_size - on THUMBNAIL_BOOK (FILE_SIZE); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20231115163730__analyze_pdf.sql b/komga/src/flyway/resources/db/migration/postgresql/V20231115163730__analyze_pdf.sql deleted file mode 100644 index 50f7a8de..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20231115163730__analyze_pdf.sql +++ /dev/null @@ -1,4 +0,0 @@ -update media -set STATUS = 'OUTDATED' -where MEDIA_TYPE = 'application/pdf' - and STATUS = 'READY'; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20231116162048__epub.sql b/komga/src/flyway/resources/db/migration/postgresql/V20231116162048__epub.sql deleted file mode 100644 index c179476a..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20231116162048__epub.sql +++ /dev/null @@ -1,16 +0,0 @@ -alter table MEDIA_FILE - add column MEDIA_TYPE varchar NULL; -alter table MEDIA_FILE - add column SUB_TYPE varchar NULL; -alter table MEDIA_FILE - add column FILE_SIZE bigint NULL; - -alter table MEDIA - add column EXTENSION_CLASS varchar NULL; -alter table MEDIA - add column EXTENSION_VALUE varchar NULL; - -update media -set STATUS = 'OUTDATED' -where MEDIA_TYPE = 'application/epub+zip' - and STATUS = 'READY'; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20231201115954__media_extension_blob.sql b/komga/src/flyway/resources/db/migration/postgresql/V20231201115954__media_extension_blob.sql deleted file mode 100644 index 970a14b7..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20231201115954__media_extension_blob.sql +++ /dev/null @@ -1,13 +0,0 @@ -update MEDIA -set EXTENSION_VALUE = null; - -update media -set STATUS = 'OUTDATED' -where MEDIA_TYPE = 'application/epub+zip' - and STATUS = 'READY'; - -ALTER TABLE MEDIA - RENAME COLUMN EXTENSION_VALUE to _UNUSED; - -alter table MEDIA - add column EXTENSION_VALUE_BLOB bytea NULL; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20231206152158__progression.sql b/komga/src/flyway/resources/db/migration/postgresql/V20231206152158__progression.sql deleted file mode 100644 index 90bae4fd..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20231206152158__progression.sql +++ /dev/null @@ -1,6 +0,0 @@ -ALTER TABLE READ_PROGRESS - ADD COLUMN device_id varchar default ''; -ALTER TABLE READ_PROGRESS - ADD COLUMN device_name varchar default ''; -ALTER TABLE READ_PROGRESS - ADD COLUMN locator bytea null; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20231213170042__cleanup_empty_thumbnails.sql b/komga/src/flyway/resources/db/migration/postgresql/V20231213170042__cleanup_empty_thumbnails.sql deleted file mode 100644 index 33293b5b..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20231213170042__cleanup_empty_thumbnails.sql +++ /dev/null @@ -1,4 +0,0 @@ -delete -from THUMBNAIL_BOOK -where TYPE = 'GENERATED' - and THUMBNAIL is null; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20231214152305__epub_divina_compatibility.sql b/komga/src/flyway/resources/db/migration/postgresql/V20231214152305__epub_divina_compatibility.sql deleted file mode 100644 index f029e23b..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20231214152305__epub_divina_compatibility.sql +++ /dev/null @@ -1,2 +0,0 @@ -alter table MEDIA - add column EPUB_DIVINA_COMPATIBLE boolean NOT NULL DEFAULT false; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20231214163213__reanalyze_epub.sql b/komga/src/flyway/resources/db/migration/postgresql/V20231214163213__reanalyze_epub.sql deleted file mode 100644 index 9aa1d063..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20231214163213__reanalyze_epub.sql +++ /dev/null @@ -1,9 +0,0 @@ -update media -set STATUS = 'OUTDATED' -where MEDIA_TYPE = 'application/epub+zip'; - -update media -set STATUS = 'OUTDATED' -where BOOK_ID in (select ID - from BOOK - where URL like '%.epub' collate NOCASE); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20240529120933__apikey.sql b/komga/src/flyway/resources/db/migration/postgresql/V20240529120933__apikey.sql deleted file mode 100644 index e196c18e..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20240529120933__apikey.sql +++ /dev/null @@ -1,18 +0,0 @@ -CREATE TABLE USER_API_KEY -( - ID varchar NOT NULL PRIMARY KEY, - USER_ID varchar NOT NULL, - CREATED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - LAST_MODIFIED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - API_KEY varchar NOT NULL UNIQUE, - COMMENT varchar NOT NULL, - FOREIGN KEY (USER_ID) REFERENCES "USER" (ID) -); - -create index if not exists idx__user_api_key__user_id - on USER_API_KEY (USER_ID); - -ALTER TABLE AUTHENTICATION_ACTIVITY - ADD COLUMN API_KEY_ID varchar NULL DEFAULT NULL; -ALTER TABLE AUTHENTICATION_ACTIVITY - ADD COLUMN API_KEY_COMMENT varchar NULL DEFAULT NULL; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20240529120934__syncpoint.sql b/komga/src/flyway/resources/db/migration/postgresql/V20240529120934__syncpoint.sql deleted file mode 100644 index 94d77be0..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20240529120934__syncpoint.sql +++ /dev/null @@ -1,41 +0,0 @@ -CREATE TABLE SYNC_POINT -( - ID varchar NOT NULL PRIMARY KEY, - CREATED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - USER_ID varchar NOT NULL, - API_KEY_ID varchar NULL, - FOREIGN KEY (USER_ID) REFERENCES "USER" (ID) -); - -create index if not exists idx__sync_point__user_id - on SYNC_POINT (USER_ID); - -CREATE TABLE SYNC_POINT_BOOK_REMOVED_SYNCED -( - SYNC_POINT_ID varchar NOT NULL, - BOOK_ID varchar NOT NULL, - PRIMARY KEY (SYNC_POINT_ID, BOOK_ID), - FOREIGN KEY (SYNC_POINT_ID) REFERENCES SYNC_POINT (ID) -); - -create index if not exists idx__sync_point_book_removed_status__sync_point_id - on SYNC_POINT_BOOK_REMOVED_SYNCED (SYNC_POINT_ID); - -CREATE TABLE SYNC_POINT_BOOK -( - SYNC_POINT_ID varchar NOT NULL, - BOOK_ID varchar NOT NULL, - BOOK_CREATED_DATE timestamp NOT NULL, - BOOK_LAST_MODIFIED_DATE timestamp NOT NULL, - BOOK_FILE_LAST_MODIFIED timestamp NOT NULL, - BOOK_FILE_SIZE bigint NOT NULL, - BOOK_FILE_HASH varchar NOT NULL, - BOOK_METADATA_LAST_MODIFIED_DATE timestamp NOT NULL, - BOOK_READ_PROGRESS_LAST_MODIFIED_DATE timestamp NULL, - SYNCED boolean NOT NULL default false, - PRIMARY KEY (SYNC_POINT_ID, BOOK_ID), - FOREIGN KEY (SYNC_POINT_ID) REFERENCES SYNC_POINT (ID) -); - -create index if not exists idx__sync_point_book__sync_point_id - on SYNC_POINT_BOOK (SYNC_POINT_ID); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20240614170012__user_kobo_role.sql b/komga/src/flyway/resources/db/migration/postgresql/V20240614170012__user_kobo_role.sql deleted file mode 100644 index 4be1387b..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20240614170012__user_kobo_role.sql +++ /dev/null @@ -1,6 +0,0 @@ -alter table "USER" - add column ROLE_KOBO_SYNC boolean NOT NULL DEFAULT false; - -update "USER" -set ROLE_KOBO_SYNC = true -where ROLE_ADMIN = true; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20240906152500__read_progress_series_read_date.sql b/komga/src/flyway/resources/db/migration/postgresql/V20240906152500__read_progress_series_read_date.sql deleted file mode 100644 index 2caffc58..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20240906152500__read_progress_series_read_date.sql +++ /dev/null @@ -1,16 +0,0 @@ -alter table READ_PROGRESS_SERIES - add MOST_RECENT_READ_DATE timestamp NULL; -alter table READ_PROGRESS_SERIES - add LAST_MODIFIED_DATE timestamp NULL; - -update READ_PROGRESS_SERIES -set MOST_RECENT_READ_DATE = (select max(r.READ_DATE) - from READ_PROGRESS r - inner join BOOK b on r.BOOK_ID = b.ID - where b.SERIES_ID = READ_PROGRESS_SERIES.SERIES_ID); - -update READ_PROGRESS_SERIES -set LAST_MODIFIED_DATE = (select max(r.LAST_MODIFIED_DATE) - from READ_PROGRESS r - inner join BOOK b on r.BOOK_ID = b.ID - where b.SERIES_ID = READ_PROGRESS_SERIES.SERIES_ID); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20240909112827__syncpoint_readlists.sql b/komga/src/flyway/resources/db/migration/postgresql/V20240909112827__syncpoint_readlists.sql deleted file mode 100644 index 0d078cb3..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20240909112827__syncpoint_readlists.sql +++ /dev/null @@ -1,34 +0,0 @@ -CREATE TABLE SYNC_POINT_READLIST -( - SYNC_POINT_ID varchar NOT NULL, - READLIST_ID varchar NOT NULL, - READLIST_NAME varchar NOT NULL, - READLIST_CREATED_DATE timestamp NOT NULL, - READLIST_LAST_MODIFIED_DATE timestamp NOT NULL, - SYNCED boolean NOT NULL default false, - PRIMARY KEY (SYNC_POINT_ID, READLIST_ID), - FOREIGN KEY (SYNC_POINT_ID) REFERENCES SYNC_POINT (ID) -); - -create index if not exists idx__sync_point_readlist__sync_point_id - on SYNC_POINT_READLIST (SYNC_POINT_ID); - -CREATE TABLE SYNC_POINT_READLIST_BOOK -( - SYNC_POINT_ID varchar NOT NULL, - READLIST_ID varchar NOT NULL, - BOOK_ID varchar NOT NULL, - PRIMARY KEY (SYNC_POINT_ID, READLIST_ID, BOOK_ID), - FOREIGN KEY (SYNC_POINT_ID) REFERENCES SYNC_POINT (ID) -); - -create index if not exists idx__sync_point_readlist_book__sync_point_id_readlist_id - on SYNC_POINT_READLIST_BOOK (SYNC_POINT_ID, READLIST_ID); - -CREATE TABLE SYNC_POINT_READLIST_REMOVED_SYNCED -( - SYNC_POINT_ID varchar NOT NULL, - READLIST_ID varchar NOT NULL, - PRIMARY KEY (SYNC_POINT_ID, READLIST_ID), - FOREIGN KEY (SYNC_POINT_ID) REFERENCES SYNC_POINT (ID) -); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20240911175419__kepub.sql b/komga/src/flyway/resources/db/migration/postgresql/V20240911175419__kepub.sql deleted file mode 100644 index 86032472..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20240911175419__kepub.sql +++ /dev/null @@ -1,2 +0,0 @@ -alter table MEDIA - add column EPUB_IS_KEPUB boolean NOT NULL DEFAULT false; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20240925174446__syncpoint_covers.sql b/komga/src/flyway/resources/db/migration/postgresql/V20240925174446__syncpoint_covers.sql deleted file mode 100644 index dca31cd1..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20240925174446__syncpoint_covers.sql +++ /dev/null @@ -1,2 +0,0 @@ -ALTER TABLE main.SYNC_POINT_BOOK - ADD COLUMN BOOK_THUMBNAIL_ID varchar NULL; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20250108115503__user_roles.sql b/komga/src/flyway/resources/db/migration/postgresql/V20250108115503__user_roles.sql deleted file mode 100644 index 9e65aa4b..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20250108115503__user_roles.sql +++ /dev/null @@ -1,65 +0,0 @@ -CREATE TABLE USER_ROLE -( - USER_ID varchar NOT NULL, - ROLE varchar NOT NULL, - PRIMARY KEY (USER_ID, ROLE), - FOREIGN KEY (USER_ID) REFERENCES "USER" (ID) -); - -insert into USER_ROLE -select id, 'ADMIN' -from "USER" -where ROLE_ADMIN = true; - -insert into USER_ROLE -select id, 'KOREADER_SYNC' -from "USER" -where ROLE_ADMIN = true; - -insert into USER_ROLE -select id, 'FILE_DOWNLOAD' -from "USER" -where ROLE_FILE_DOWNLOAD = true; - -insert into USER_ROLE -select id, 'PAGE_STREAMING' -from "USER" -where ROLE_PAGE_STREAMING = true; - -insert into USER_ROLE -select id, 'KOBO_SYNC' -from "USER" -where ROLE_KOBO_SYNC = true; - --- Remove columns ROLE_ADMIN, ROLE_FILE_DOWNLOAD, ROLE_PAGE_STREAMING, ROLE_KOBO_SYNC from "USER" - -create table USER_dg_tmp -( - ID varchar not null - primary key, - CREATED_DATE timestamp default CURRENT_TIMESTAMP not null, - LAST_MODIFIED_DATE timestamp default CURRENT_TIMESTAMP not null, - EMAIL varchar not null - unique, - PASSWORD varchar not null, - SHARED_ALL_LIBRARIES boolean DEFAULT true not null, - AGE_RESTRICTION integer, - AGE_RESTRICTION_ALLOW_ONLY boolean -); - -insert into USER_dg_tmp(ID, CREATED_DATE, LAST_MODIFIED_DATE, EMAIL, PASSWORD, SHARED_ALL_LIBRARIES, AGE_RESTRICTION, - AGE_RESTRICTION_ALLOW_ONLY) -select ID, - CREATED_DATE, - LAST_MODIFIED_DATE, - EMAIL, - PASSWORD, - SHARED_ALL_LIBRARIES, - AGE_RESTRICTION, - AGE_RESTRICTION_ALLOW_ONLY -from "USER"; - -drop table "USER" CASCADE; - -alter table USER_dg_tmp - rename to "USER"; diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20250108172343__koreader_hash.sql b/komga/src/flyway/resources/db/migration/postgresql/V20250108172343__koreader_hash.sql deleted file mode 100644 index d9dc6bc8..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20250108172343__koreader_hash.sql +++ /dev/null @@ -1,6 +0,0 @@ -ALTER TABLE LIBRARY - add column HASH_KOREADER boolean NOT NULL DEFAULT false; - -ALTER TABLE BOOK - ADD COLUMN FILE_HASH_KOREADER varchar NOT NULL DEFAULT ''; - diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20250205151235__client_settings.sql b/komga/src/flyway/resources/db/migration/postgresql/V20250205151235__client_settings.sql deleted file mode 100644 index fcb10d7c..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20250205151235__client_settings.sql +++ /dev/null @@ -1,15 +0,0 @@ -CREATE TABLE CLIENT_SETTINGS_GLOBAL -( - KEY varchar NOT NULL PRIMARY KEY, - VALUE varchar NOT NULL, - ALLOW_UNAUTHORIZED boolean NOT NULL DEFAULT false -); - -CREATE TABLE CLIENT_SETTINGS_USER -( - USER_ID varchar NOT NULL, - KEY varchar NOT NULL, - VALUE varchar NOT NULL, - FOREIGN KEY (USER_ID) REFERENCES "USER" (ID), - PRIMARY KEY (KEY, USER_ID) -); diff --git a/komga/src/flyway/resources/db/migration/postgresql/V20250730173126__remove_temp_string_table.sql b/komga/src/flyway/resources/db/migration/postgresql/V20250730173126__remove_temp_string_table.sql deleted file mode 100644 index ed9da7fb..00000000 --- a/komga/src/flyway/resources/db/migration/postgresql/V20250730173126__remove_temp_string_table.sql +++ /dev/null @@ -1 +0,0 @@ -DROP TABLE IF EXISTS TEMP_STRING_LIST; diff --git a/run-local-with-postgres.sh b/run-local-with-postgres.sh index 408f9c2c..adeb8f2c 100755 --- a/run-local-with-postgres.sh +++ b/run-local-with-postgres.sh @@ -1,27 +1,36 @@ #!/bin/bash -# Script to run Komga locally with PostgreSQL - -set -e +# Configuration +COMPOSE_FILE="docker-compose.local.yml" +DB_PASSWORD="komga123" echo "Starting PostgreSQL container..." -docker-compose up -d postgres +docker compose -f "$COMPOSE_FILE" up -d postgres echo "Waiting for PostgreSQL to be ready..." -sleep 5 +until docker exec komga-postgres pg_isready -U komga -d komga; do + sleep 1 +done -echo "Building Komga..." -./gradlew :komga:build -x test +echo "Manually applying the consolidated PostgreSQL schema..." +# We apply the big script manually to the DB +docker exec -i komga-postgres psql -U komga -d komga < komga/src/flyway/resources/db/migration/postgresql/V001__initial_migration.sql echo "Running Komga with PostgreSQL..." -SPRING_PROFILES_ACTIVE=docker \ -KOMGA_DATABASE_TYPE=postgresql \ -KOMGA_DATABASE_URL="jdbc:postgresql://localhost:5433/komga?sslmode=disable&socketTimeout=10" \ -KOMGA_DATABASE_USERNAME=komga \ -KOMGA_DATABASE_PASSWORD=komga123 \ -KOMGA_CONFIG_DIR="$HOME/.komga-postgres" \ -./gradlew :komga:bootRun +# Note: Use KOMGA_DATABASE_URL and other matching properties +export KOMGA_DATABASE_DRIVER_CLASS_NAME=org.postgresql.Driver +export KOMGA_DATABASE_URL="jdbc:postgresql://localhost:5433/komga?user=komga&password=$DB_PASSWORD" +export KOMGA_DATABASE_USERNAME=komga +export KOMGA_DATABASE_PASSWORD=$DB_PASSWORD +export KOMGA_DATABASE_TYPE=postgresql +export KOMGA_DATABASE_POOL_SIZE=10 +export KOMGA_DATABASE_MAX_POOL_SIZE=10 +export SPRING_FLYWAY_BASELINE_ON_MIGRATE=true +export SPRING_FLYWAY_BASELINE_VERSION=20250730173126 +export KOMGA_CONFIG_DIR="$HOME/.komga-postgres" + +./gradlew clean :komga:bootRun echo "Komga is running at http://localhost:25600" echo "PostgreSQL is running at localhost:5433" -echo "To stop: docker-compose down" \ No newline at end of file +echo "To stop: docker compose -f $COMPOSE_FILE stop postgres" \ No newline at end of file