Alerting: fix postgres migration on conflict (#35556)
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
pb "github.com/prometheus/alertmanager/silence/silencepb"
|
||||
"xorm.io/xorm"
|
||||
@@ -217,7 +218,14 @@ func (m *migration) Exec(sess *xorm.Session, mg *migrator.Migrator) error {
|
||||
return err
|
||||
}
|
||||
|
||||
_, err = m.sess.Insert(rule)
|
||||
if strings.HasPrefix(mg.Dialect.DriverName(), migrator.Postgres) {
|
||||
err = mg.InTransaction(func(sess *xorm.Session) error {
|
||||
_, err = sess.Insert(rule)
|
||||
return err
|
||||
})
|
||||
} else {
|
||||
_, err = m.sess.Insert(rule)
|
||||
}
|
||||
if err != nil {
|
||||
// TODO better error handling, if constraint
|
||||
rule.Title += fmt.Sprintf(" %v", rule.Uid)
|
||||
|
||||
Reference in New Issue
Block a user