fix: prevent startup panics on databases missing base tables

The catch-up migration now creates the servers table if missing, like
sign_sessions. Startup cleanup queries in main.go use Exec instead of
MustExec so missing tables log warnings rather than panicking.
This commit is contained in:
Houmgaor
2026-03-16 00:04:45 +01:00
parent 31aa02a8e2
commit 7657ddbd50
2 changed files with 22 additions and 3 deletions

12
main.go
View File

@@ -240,11 +240,17 @@ func main() {
if len(ownedServerIDs) > 0 {
idList := strings.Join(ownedServerIDs, ",")
if config.DebugOptions.ProxyPort == 0 {
_ = db.MustExec("DELETE FROM sign_sessions WHERE server_id IN (" + idList + ")")
if _, err := db.Exec("DELETE FROM sign_sessions WHERE server_id IN (" + idList + ")"); err != nil {
logger.Warn("Failed to clear stale sign sessions", zap.Error(err))
}
}
if _, err := db.Exec("DELETE FROM servers WHERE server_id IN (" + idList + ")"); err != nil {
logger.Warn("Failed to clear stale server entries", zap.Error(err))
}
_ = db.MustExec("DELETE FROM servers WHERE server_id IN (" + idList + ")")
}
_ = db.MustExec(`UPDATE guild_characters SET treasure_hunt=NULL`)
if _, err := db.Exec(`UPDATE guild_characters SET treasure_hunt=NULL`); err != nil {
logger.Warn("Failed to reset treasure hunts", zap.Error(err))
}
// Clean the DB if the option is on.
if config.DebugOptions.CleanDB {