mirror of
https://github.com/grafana/grafana.git
synced 2025-07-30 17:22:20 +08:00
41 lines
1.1 KiB
Go
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)
|
|
}
|
|
}
|