1
0
Fork 0
mirror of https://git.sr.ht/~ashkeel/strimertul synced 2024-09-18 01:50:50 +00:00
This commit is contained in:
Ash Keel 2022-02-02 18:10:34 +01:00
parent 70db5a4022
commit 8ba3c3fbc0
No known key found for this signature in database
GPG key ID: BAD8D93E7314ED3E
2 changed files with 6 additions and 48 deletions

View file

@ -93,7 +93,9 @@ func main() {
}
logger, _ = cfg.Build()
}
defer logger.Sync()
defer func() {
_ = logger.Sync()
}()
undo := zap.RedirectStdLog(logger)
defer undo()
@ -120,6 +122,9 @@ func main() {
case "badger":
var db *badger.DB
db, hub, err = makeBadgerHub(options)
if err != nil {
logger.Fatal("failed to open database", zap.Error(err))
}
defer func() {
if err := badgerClose(db); err != nil {
logger.Fatal("Failed to close database", zap.Error(err))

View file

@ -1,47 +0,0 @@
package loyalty
import (
"errors"
kv "github.com/strimertul/kilovolt/v8"
"github.com/strimertul/strimertul/modules/database"
"go.uber.org/zap"
)
const OldPointsKey = "loyalty/users"
type OldPointStorage map[string]int64
func migratePoints(db *database.DBModule, log *zap.Logger) error {
// Retrieve old storage
var oldStorage OldPointStorage
err := db.GetJSON(OldPointsKey, &oldStorage)
if errors.Is(err, kv.ErrorKeyNotFound) {
// No migration needed, points are already kaput
return nil
}
if err != nil {
return err
}
// Move to new format
newStorage := make(map[string]interface{})
for user, points := range oldStorage {
userkey := PointsPrefix + user
newStorage[userkey] = PointsEntry{
Points: points,
}
}
// Bulk add to database
if err := db.PutJSONBulk(newStorage); err != nil {
return err
}
log.Info("Migrated to new loyalty point format")
// Remove old key
return db.RemoveKey(OldPointsKey)
}