diff options
author | Linnea Gräf <nea@nea.moe> | 2025-01-16 21:49:20 +0100 |
---|---|---|
committer | Linnea Gräf <nea@nea.moe> | 2025-01-16 21:49:20 +0100 |
commit | 305178f5511bbf7b4499d7cf4142a067ab42e2fc (patch) | |
tree | 845b3cca6490fb9c1252215aa310eec108316bf1 /mod/src/main/kotlin/moe/nea/ledger/database/Database.kt | |
parent | 40ed3a1f667d58501fc43fb45f53585315c013d1 (diff) | |
download | LocalTransactionLedger-305178f5511bbf7b4499d7cf4142a067ab42e2fc.tar.gz LocalTransactionLedger-305178f5511bbf7b4499d7cf4142a067ab42e2fc.tar.bz2 LocalTransactionLedger-305178f5511bbf7b4499d7cf4142a067ab42e2fc.zip |
refactor: Extract database models to own modules
Diffstat (limited to 'mod/src/main/kotlin/moe/nea/ledger/database/Database.kt')
-rw-r--r-- | mod/src/main/kotlin/moe/nea/ledger/database/Database.kt | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/mod/src/main/kotlin/moe/nea/ledger/database/Database.kt b/mod/src/main/kotlin/moe/nea/ledger/database/Database.kt deleted file mode 100644 index 025888c..0000000 --- a/mod/src/main/kotlin/moe/nea/ledger/database/Database.kt +++ /dev/null @@ -1,57 +0,0 @@ -package moe.nea.ledger.database - -import moe.nea.ledger.Ledger -import moe.nea.ledger.database.columns.DBString -import java.sql.Connection -import java.sql.DriverManager - -class Database { - lateinit var connection: Connection - - object MetaTable : Table("LedgerMeta") { - val key = column("key", DBString) - val value = column("value", DBString) - - init { - unique(key) - } - } - - data class MetaKey(val name: String) { - companion object { - val DATABASE_VERSION = MetaKey("databaseVersion") - val LAST_LAUNCH = MetaKey("lastLaunch") - } - } - - fun setMetaKey(key: MetaKey, value: String) { - MetaTable.insert(connection, Table.OnConflict.REPLACE) { - it[MetaTable.key] = key.name - it[MetaTable.value] = value - } - } - - val databaseVersion: Long = 1 - - fun loadAndUpgrade() { - connection = DriverManager.getConnection("jdbc:sqlite:${Ledger.dataFolder.resolve("database.db")}") - MetaTable.createIfNotExists(connection) - val meta = MetaTable.selectAll(connection).associate { MetaKey(it[MetaTable.key]) to it[MetaTable.value] } - val lastLaunch = meta[MetaKey.LAST_LAUNCH]?.toLong() ?: 0L - println("Last launch $lastLaunch") - setMetaKey(MetaKey.LAST_LAUNCH, System.currentTimeMillis().toString()) - - val oldVersion = meta[MetaKey.DATABASE_VERSION]?.toLong() ?: -1 - println("Old Database Version: $oldVersion; Current version: $databaseVersion") - if (oldVersion > databaseVersion) - error("Outdated software. Database is newer than me!") - // TODO: create a backup if there is a db version upgrade happening - DBUpgrade.performUpgradeChain( - connection, oldVersion, databaseVersion, - Upgrades().upgrades - ) { version -> - setMetaKey(MetaKey.DATABASE_VERSION, version.toString()) - } - } - -}
\ No newline at end of file |