From 97b53e5c962cf848cf7d62fb4fe0ede94479a554 Mon Sep 17 00:00:00 2001 From: Gauthier Roebroeck Date: Thu, 24 Jun 2021 16:32:30 +0800 Subject: [PATCH] fix: deleting series could fail with foreign key error --- .../gotson/komga/domain/persistence/ReadProgressRepository.kt | 1 + .../kotlin/org/gotson/komga/domain/service/SeriesLifecycle.kt | 1 + .../org/gotson/komga/infrastructure/jooq/ReadProgressDao.kt | 4 ++++ 3 files changed, 6 insertions(+) diff --git a/komga/src/main/kotlin/org/gotson/komga/domain/persistence/ReadProgressRepository.kt b/komga/src/main/kotlin/org/gotson/komga/domain/persistence/ReadProgressRepository.kt index 63643b897..0b205803c 100644 --- a/komga/src/main/kotlin/org/gotson/komga/domain/persistence/ReadProgressRepository.kt +++ b/komga/src/main/kotlin/org/gotson/komga/domain/persistence/ReadProgressRepository.kt @@ -18,5 +18,6 @@ interface ReadProgressRepository { fun deleteByBookId(bookId: String) fun deleteByBookIds(bookIds: Collection) fun deleteByBookIdsAndUserId(bookIds: Collection, userId: String) + fun deleteBySeriesIds(seriesIds: Collection) fun deleteAll() } diff --git a/komga/src/main/kotlin/org/gotson/komga/domain/service/SeriesLifecycle.kt b/komga/src/main/kotlin/org/gotson/komga/domain/service/SeriesLifecycle.kt index 9c14b4724..2ef64684e 100644 --- a/komga/src/main/kotlin/org/gotson/komga/domain/service/SeriesLifecycle.kt +++ b/komga/src/main/kotlin/org/gotson/komga/domain/service/SeriesLifecycle.kt @@ -140,6 +140,7 @@ class SeriesLifecycle( val books = bookRepository.findAllBySeriesIds(seriesIds) bookLifecycle.deleteMany(books) + readProgressRepository.deleteBySeriesIds(seriesIds) collectionRepository.removeSeriesFromAll(seriesIds) thumbnailsSeriesRepository.deleteBySeriesIds(seriesIds) seriesMetadataRepository.delete(seriesIds) diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/ReadProgressDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/ReadProgressDao.kt index 7b6c70eb6..37ab92ea7 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/ReadProgressDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/ReadProgressDao.kt @@ -104,6 +104,10 @@ class ReadProgressDao( } } + override fun deleteBySeriesIds(seriesIds: Collection) { + dsl.deleteFrom(rs).where(rs.SERIES_ID.`in`(seriesIds)).execute() + } + override fun deleteByBookIdsAndUserId(bookIds: Collection, userId: String) { dsl.transaction { config -> config.dsl().deleteFrom(r).where(r.BOOK_ID.`in`(bookIds)).and(r.USER_ID.eq(userId)).execute()