Files

41 lines
1.1 KiB
Go

package dualwrite
import (
"context"
"encoding/json"
"os"
"path/filepath"
"github.com/grafana/grafana-app-sdk/logging"
"github.com/grafana/grafana/pkg/setting"
)
// This format was used in early G12 provisioning config. It should be removed after 12.1
// This migration will be called once, and will remove the file based option even if the input was invalid
func migrateFileDBTo(cfg *setting.Cfg, db *keyvalueDB) {
fpath := filepath.Join(cfg.DataPath, "dualwrite.json")
v, err := os.ReadFile(fpath) // nolint:gosec
if err != nil {
return // the file does not exist, so nothign required
}
logger := logging.DefaultLogger.With("logger", "dualwrite-migrator")
old := make(map[string]StorageStatus)
err = json.Unmarshal(v, &old)
if err != nil {
logger.Warn("error loading dual write settings", "err", err)
}
for _, v := range old {
err = db.set(context.Background(), v)
if err != nil {
logger.Warn("error migrating dual write value", "err", err)
}
}
err = os.Remove(fpath)
if err != nil {
logger.Warn("error removing old dual write settings", "err", err)
}
}