From bbace9bbda2fe24961a3d14cbc164224234679c8 Mon Sep 17 00:00:00 2001 From: DarkAtra Date: Sat, 16 Nov 2024 15:51:40 +0100 Subject: [PATCH] fix: copy the whole database when encrypting, not just all collections --- .../darkatra/vrising/discord/migration/DatabaseHelper.kt | 3 +-- .../vrising/discord/persistence/DatabaseConfiguration.kt | 9 +++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/de/darkatra/vrising/discord/migration/DatabaseHelper.kt b/src/main/kotlin/de/darkatra/vrising/discord/migration/DatabaseHelper.kt index 6681eaa..1d20c7c 100644 --- a/src/main/kotlin/de/darkatra/vrising/discord/migration/DatabaseHelper.kt +++ b/src/main/kotlin/de/darkatra/vrising/discord/migration/DatabaseHelper.kt @@ -12,6 +12,5 @@ fun Nitrite.getNitriteMap(name: String): NitriteMap { } fun Nitrite.listAllCollectionNames(): List { - return store.openMap(Constants.META_MAP_NAME, String::class.java, Attributes::class.java).keys() - .filter { key -> !key.startsWith("\$nitrite") } + return store.openMap(Constants.META_MAP_NAME, String::class.java, Attributes::class.java).keys().toList() } diff --git a/src/main/kotlin/de/darkatra/vrising/discord/persistence/DatabaseConfiguration.kt b/src/main/kotlin/de/darkatra/vrising/discord/persistence/DatabaseConfiguration.kt index 17ca519..21ce5a5 100644 --- a/src/main/kotlin/de/darkatra/vrising/discord/persistence/DatabaseConfiguration.kt +++ b/src/main/kotlin/de/darkatra/vrising/discord/persistence/DatabaseConfiguration.kt @@ -2,7 +2,6 @@ package de.darkatra.vrising.discord.persistence import de.darkatra.vrising.discord.BotProperties import de.darkatra.vrising.discord.migration.SchemaEntityConverter -import de.darkatra.vrising.discord.migration.getNitriteMap import de.darkatra.vrising.discord.migration.listAllCollectionNames import de.darkatra.vrising.discord.persistence.model.converter.ErrorEntityConverter import de.darkatra.vrising.discord.persistence.model.converter.PlayerActivityFeedEntityConverter @@ -11,6 +10,8 @@ import de.darkatra.vrising.discord.persistence.model.converter.ServerEntityConve import de.darkatra.vrising.discord.persistence.model.converter.StatusMonitorEntityConverter import org.dizitart.no2.Nitrite import org.dizitart.no2.NitriteBuilder +import org.dizitart.no2.collection.Document +import org.dizitart.no2.collection.NitriteId import org.dizitart.no2.exceptions.NitriteIOException import org.dizitart.no2.mvstore.MVStoreModule import org.dizitart.no2.store.StoreModule @@ -69,10 +70,10 @@ class DatabaseConfiguration( val encryptedDatabase = getNitriteBuilder(getStoreModule(tempDatabaseFile, password)).openOrCreate(username, password) for (collectionName in unencryptedDatabase.listAllCollectionNames()) { - val oldCollection = unencryptedDatabase.getNitriteMap(collectionName) - val newCollection = encryptedDatabase.getNitriteMap(collectionName) + val oldCollection = unencryptedDatabase.store.openMap(collectionName, NitriteId::class.java, Document::class.java) + val newCollection = encryptedDatabase.store.openMap(collectionName, NitriteId::class.java, Document::class.java) - oldCollection.values().forEach { document -> newCollection.put(document.id, document) } + oldCollection.entries().forEach { entry -> newCollection.put(entry.first, entry.second) } } unencryptedDatabase.close() encryptedDatabase.close()