EncryptSL / LiteEco

Minecraft Economy Plugin works with vault.
19 stars 8 forks source link

[Bug]: database bug #75

Closed JimmyJxt closed 3 months ago

JimmyJxt commented 6 months ago

What happened?

1.4.2 corrupted? my database and it don't work anymore on 1.4.2, It was working on 1.4.1 but not anymore is there a way to fix it? database.zip

Plugin Version

1.4.2-SNAPSHOT

You detected problem on this server platform ?

PurpurMC

Version /version - output

purpurmc build: 2118

Relevant log output

[18:52:42 WARN]: [Exposed] Transaction attempt #0 failed: org.sqlite.SQLiteException: [SQLITE_ERROR] SQL error or missing database (no such column: lite_eco.username). Statement(s): SELECT lite_eco.id, lite_eco.username, lite_eco.uuid, lite_eco.money FROM lite_eco WHERE lite_eco.uuid = ?
org.jetbrains.exposed.exceptions.ExposedSQLException: org.sqlite.SQLiteException: [SQLITE_ERROR] SQL error or missing database (no such column: lite_eco.username)
        at org.jetbrains.exposed.sql.statements.Statement.executeIn$exposed_core(Statement.kt:49) ~[?:?]
        at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:157) ~[?:?]
        at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:143) ~[?:?]
        at org.jetbrains.exposed.sql.Query.empty(Query.kt:217) ~[?:?]
        at encryptsl.cekuj.net.database.models.PreparedStatements$getExistPlayerAccount$1.invoke(PreparedStatements.kt:33) ~[LiteEco-1.4.2-SNAPSHOT.jar:?]
        at encryptsl.cekuj.net.database.models.PreparedStatements$getExistPlayerAccount$1.invoke(PreparedStatements.kt:32) ~[LiteEco-1.4.2-SNAPSHOT.jar:?]
        at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction$run(ThreadLocalTransactionManager.kt:236) ~[?:?]
        at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.access$inTopLevelTransaction$run(ThreadLocalTransactionManager.kt:1) ~[?:?]
        at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$inTopLevelTransaction$1.invoke(ThreadLocalTransactionManager.kt:283) ~[?:?]
        at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:291) ~[?:?]
        at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction(ThreadLocalTransactionManager.kt:282) ~[?:?]
        at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$transaction$1.invoke(ThreadLocalTransactionManager.kt:204) ~[?:?]
        at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:291) ~[?:?]
        at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:174) ~[?:?]
        at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:162) ~[?:?]
        at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction$default(ThreadLocalTransactionManager.kt:161) ~[?:?]
        at encryptsl.cekuj.net.database.models.PreparedStatements.getExistPlayerAccount(PreparedStatements.kt:32) ~[LiteEco-1.4.2-SNAPSHOT.jar:?]
        at encryptsl.cekuj.net.api.economy.LiteEcoEconomyAPI.hasAccount(LiteEcoEconomyAPI.kt:43) ~[LiteEco-1.4.2-SNAPSHOT.jar:?]
        at encryptsl.cekuj.net.listeners.admin.EconomyMoneyDepositListener.onAdminEconomyDeposit(EconomyMoneyDepositListener.kt:22) ~[LiteEco-1.4.2-SNAPSHOT.jar:?]
        at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor27.execute(Unknown Source) ~[?:?]
        at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[purpur-api-1.20.4-R0.1-SNAPSHOT.jar:?]
        at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:77) ~[purpur-api-1.20.4-R0.1-SNAPSHOT.jar:git-Purpur-2118]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[purpur-api-1.20.4-R0.1-SNAPSHOT.jar:?]
        at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) ~[purpur-1.20.4.jar:git-Purpur-2118]
        at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:126) ~[purpur-1.20.4.jar:git-Purpur-2118]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:617) ~[purpur-api-1.20.4-R0.1-SNAPSHOT.jar:?]
        at encryptsl.cekuj.net.commands.EcoCMD.onAddMoney$lambda$1(EcoCMD.kt:50) ~[LiteEco-1.4.2-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.v1_20_R3.scheduler.CraftTask.run(CraftTask.java:101) ~[purpur-1.20.4.jar:git-Purpur-2118]
        at org.bukkit.craftbukkit.v1_20_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:480) ~[purpur-1.20.4.jar:git-Purpur-2118]
        at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1666) ~[purpur-1.20.4.jar:git-Purpur-2118]
        at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:486) ~[purpur-1.20.4.jar:git-Purpur-2118]
        at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1545) ~[purpur-1.20.4.jar:git-Purpur-2118]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1235) ~[purpur-1.20.4.jar:git-Purpur-2118]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:326) ~[purpur-1.20.4.jar:git-Purpur-2118]
EncryptSL commented 6 months ago

This is not a bug, your issue is related to the update. Table was changed and now you have this problem.

In table missing column name, i write about this change in update log. Step for right update:

Before Update Please do backup of plugin folder and database or mysql table, and do on old version /eco migration SQL. Without online players. Accounts must be synchronized.

Please update your config.yml This update copy your old config to old_config.yml Please backup your database, changes of table can break your table. If you are using database.db you must migrate to sql file and add to mysql, and in phpmyadmin import. And in PhpMyAdmin add column username. Please copy your old lang file if you have custom, because version of locales was changed. This update copy your old locale to example old_cs_cz.yml Please read changelog....

Or Download https://sqlitebrowser.org/ and manual edit your db file, add column username. Fixed.