From 49f83b78ace92aeb6a42e1a66f2042655a3b41cd Mon Sep 17 00:00:00 2001 From: Gauthier Roebroeck Date: Thu, 17 Jun 2021 11:29:40 +0800 Subject: [PATCH] fix: sidecars would not be deleted with library --- .../migration/sqlite/V20210617114814__sidecar_cleanup.sql | 6 ++++++ .../gotson/komga/domain/persistence/SidecarRepository.kt | 1 + .../org/gotson/komga/domain/service/LibraryLifecycle.kt | 3 +++ .../org/gotson/komga/infrastructure/jooq/SidecarDao.kt | 6 ++++++ 4 files changed, 16 insertions(+) create mode 100644 komga/src/flyway/resources/db/migration/sqlite/V20210617114814__sidecar_cleanup.sql diff --git a/komga/src/flyway/resources/db/migration/sqlite/V20210617114814__sidecar_cleanup.sql b/komga/src/flyway/resources/db/migration/sqlite/V20210617114814__sidecar_cleanup.sql new file mode 100644 index 000000000..254e7418a --- /dev/null +++ b/komga/src/flyway/resources/db/migration/sqlite/V20210617114814__sidecar_cleanup.sql @@ -0,0 +1,6 @@ +DELETE +FROM SIDECAR +WHERE LIBRARY_ID NOT IN ( + SELECT ID + FROM LIBRARY + ) diff --git a/komga/src/main/kotlin/org/gotson/komga/domain/persistence/SidecarRepository.kt b/komga/src/main/kotlin/org/gotson/komga/domain/persistence/SidecarRepository.kt index b104c073f..1e4016462 100644 --- a/komga/src/main/kotlin/org/gotson/komga/domain/persistence/SidecarRepository.kt +++ b/komga/src/main/kotlin/org/gotson/komga/domain/persistence/SidecarRepository.kt @@ -10,4 +10,5 @@ interface SidecarRepository { fun save(libraryId: String, sidecar: Sidecar) fun deleteByLibraryIdAndUrls(libraryId: String, urls: Collection) + fun deleteByLibraryId(libraryId: String) } diff --git a/komga/src/main/kotlin/org/gotson/komga/domain/service/LibraryLifecycle.kt b/komga/src/main/kotlin/org/gotson/komga/domain/service/LibraryLifecycle.kt index 6ff93336b..e171620b5 100644 --- a/komga/src/main/kotlin/org/gotson/komga/domain/service/LibraryLifecycle.kt +++ b/komga/src/main/kotlin/org/gotson/komga/domain/service/LibraryLifecycle.kt @@ -8,6 +8,7 @@ import org.gotson.komga.domain.model.Library import org.gotson.komga.domain.model.PathContainedInPath import org.gotson.komga.domain.persistence.LibraryRepository import org.gotson.komga.domain.persistence.SeriesRepository +import org.gotson.komga.domain.persistence.SidecarRepository import org.springframework.stereotype.Service import java.io.FileNotFoundException import java.nio.file.Files @@ -19,6 +20,7 @@ class LibraryLifecycle( private val libraryRepository: LibraryRepository, private val seriesLifecycle: SeriesLifecycle, private val seriesRepository: SeriesRepository, + private val sidecarRepository: SidecarRepository, private val taskReceiver: TaskReceiver ) { @@ -73,6 +75,7 @@ class LibraryLifecycle( val seriesIds = seriesRepository.findAllByLibraryId(library.id).map { it.id } seriesLifecycle.deleteMany(seriesIds) + sidecarRepository.deleteByLibraryId(library.id) libraryRepository.delete(library.id) } diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/SidecarDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/SidecarDao.kt index da3d807ba..96339f191 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/SidecarDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/SidecarDao.kt @@ -41,6 +41,12 @@ class SidecarDao( .execute() } + override fun deleteByLibraryId(libraryId: String) { + dsl.deleteFrom(sc) + .where(sc.LIBRARY_ID.eq(libraryId)) + .execute() + } + private fun SidecarRecord.toDomain() = SidecarStored( url = URL(url),