From 898f8aad07e23a929da6b64528ff63161de0fc7f Mon Sep 17 00:00:00 2001 From: Shivaram Lingamneni Date: Fri, 16 Oct 2020 09:11:47 -0400 Subject: [PATCH] add a schema change --- irc/database.go | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/irc/database.go b/irc/database.go index 2608127b..c2989a22 100644 --- a/irc/database.go +++ b/irc/database.go @@ -24,7 +24,7 @@ const ( // 'version' of the database schema keySchemaVersion = "db.version" // latest schema of the db - latestDbSchema = "14" + latestDbSchema = "15" keyCloakSecret = "crypto.cloak_secret" ) @@ -792,6 +792,26 @@ func schemaChangeV13ToV14(config *Config, tx *buntdb.Tx) error { return nil } +// #1327: delete any invalid klines +func schemaChangeV14ToV15(config *Config, tx *buntdb.Tx) error { + prefix := "bans.klinev2 " + var keys []string + tx.AscendGreaterOrEqual("", prefix, func(key, value string) bool { + if !strings.HasPrefix(key, prefix) { + return false + } + if key != strings.TrimSpace(key) { + keys = append(keys, key) + } + return true + }) + // don't bother trying to fix these up + for _, key := range keys { + tx.Delete(key) + } + return nil +} + func init() { allChanges := []SchemaChange{ { @@ -859,6 +879,11 @@ func init() { TargetVersion: "14", Changer: schemaChangeV13ToV14, }, + { + InitialVersion: "14", + TargetVersion: "15", + Changer: schemaChangeV14ToV15, + }, } // build the index