mirror of
https://git.sr.ht/~ashkeel/strimertul
synced 2024-09-18 01:50:50 +00:00
Cleanups
This commit is contained in:
parent
70db5a4022
commit
8ba3c3fbc0
2 changed files with 6 additions and 48 deletions
7
main.go
7
main.go
|
@ -93,7 +93,9 @@ func main() {
|
||||||
}
|
}
|
||||||
logger, _ = cfg.Build()
|
logger, _ = cfg.Build()
|
||||||
}
|
}
|
||||||
defer logger.Sync()
|
defer func() {
|
||||||
|
_ = logger.Sync()
|
||||||
|
}()
|
||||||
undo := zap.RedirectStdLog(logger)
|
undo := zap.RedirectStdLog(logger)
|
||||||
defer undo()
|
defer undo()
|
||||||
|
|
||||||
|
@ -120,6 +122,9 @@ func main() {
|
||||||
case "badger":
|
case "badger":
|
||||||
var db *badger.DB
|
var db *badger.DB
|
||||||
db, hub, err = makeBadgerHub(options)
|
db, hub, err = makeBadgerHub(options)
|
||||||
|
if err != nil {
|
||||||
|
logger.Fatal("failed to open database", zap.Error(err))
|
||||||
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
if err := badgerClose(db); err != nil {
|
if err := badgerClose(db); err != nil {
|
||||||
logger.Fatal("Failed to close database", zap.Error(err))
|
logger.Fatal("Failed to close database", zap.Error(err))
|
||||||
|
|
|
@ -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)
|
|
||||||
}
|
|
Loading…
Reference in a new issue