Grafana Cli: Add admin flush-rbac-seed-assignment command (#116716)

This commit is contained in:
Stephanie Hingtgen 2026-01-22 12:58:18 -07:00 committed by GitHub
parent 99d56e9374
commit ac6be6db21
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 38 additions and 0 deletions

View file

@ -197,6 +197,11 @@ var adminCommands = []*cli.Command{
},
},
},
{
Name: "flush-rbac-seed-assignment",
Usage: "Clears RBAC seeding to force re-seeding on next startup. Use after running an Enterprise build, then an OSS build, then an Enterprise build again.",
Action: runDbCommand(flushSeedAssignment),
},
}
var Commands = []*cli.Command{

View file

@ -0,0 +1,33 @@
package commands
import (
"context"
"github.com/grafana/grafana/pkg/cmd/grafana-cli/logger"
"github.com/grafana/grafana/pkg/cmd/grafana-cli/utils"
"github.com/grafana/grafana/pkg/infra/db"
"github.com/grafana/grafana/pkg/setting"
)
func flushSeedAssignment(c utils.CommandLine, cfg *setting.Cfg, sqlStore db.DB) error {
return sqlStore.WithDbSession(context.Background(), func(sess *db.Session) error {
exists, err := sess.IsTableExist("seed_assignment")
if err != nil {
return err
}
if !exists {
logger.Infof("seed_assignment table does not exist, skipping.")
return nil
}
result, err := sess.Exec("DELETE FROM seed_assignment")
if err != nil {
return err
}
rowsAffected, _ := result.RowsAffected()
logger.Infof("Flushed seed_assignment table (%d rows deleted).", rowsAffected)
logger.Info("Restart Grafana to repopulate this table on next startup with the default RBAC assignments.")
return nil
})
}