From b4595b70d6cde4afcaeb7c667935e0ca6d316e23 Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Fri, 23 Jan 2026 02:27:22 +0100 Subject: [PATCH] Fix/using postgresql with hikaricp (#1867) * Set default schema for postgresql db The schema was only set once during startup. This is, however, only set for the current connection. So when using hikaricp, depending on which connection was used, the schema might have been set, or it might not have been set. fixes #1670 * Revert "Fix database connection and errors (#1681)" This reverts commit 2e0f72f1820f2337ed8542314f6e6b78f8fa064a. Not necessary anymore as the issue that this change intended to fix is now fixed with 091206800025ed9370d611e7ca3430ab409a0cb2 --- .../suwayomi/tachidesk/server/database/DBManager.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/server/src/main/kotlin/suwayomi/tachidesk/server/database/DBManager.kt b/server/src/main/kotlin/suwayomi/tachidesk/server/database/DBManager.kt index 78c9fc8c..0345c303 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/server/database/DBManager.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/server/database/DBManager.kt @@ -65,11 +65,11 @@ object DBManager { // Optimized for Raspberry Pi / Low memory environments maximumPoolSize = 6 // Moderate pool for better concurrency + minimumIdle = 2 // Keep 2 idle connections for responsiveness connectionTimeout = 45.seconds.inWholeMilliseconds // more tolerance for slow devices idleTimeout = 5.minutes.inWholeMilliseconds // close idle connections faster maxLifetime = 15.minutes.inWholeMilliseconds // recycle connections more often leakDetectionThreshold = 1.minutes.inWholeMilliseconds - isAutoCommit = false // Pool name for monitoring poolName = "Suwayomi-DB-Pool" @@ -94,6 +94,11 @@ object DBManager { useNestedTransactions = true @OptIn(ExperimentalKeywordApi::class) preserveKeywordCasing = false + defaultSchema = + when (serverConfig.databaseType.value) { + DatabaseType.POSTGRESQL -> Schema("suwayomi") + DatabaseType.H2 -> null + } } return if (serverConfig.useHikariConnectionPool.value) { @@ -175,7 +180,6 @@ fun databaseUp() { serverConfig.databaseUsername.value.takeIf { it.isNotBlank() }, ) SchemaUtils.createSchema(schema) - SchemaUtils.setSchema(schema) } } val migrations = loadMigrationsFrom("suwayomi.tachidesk.server.database.migration", ServerConfig::class.java)