Skip to content

Commit ca1eb8b

Browse files
authored
pkg/database: enable upsert feature flag, use it for config items (#3895)
1 parent 43fe6ef commit ca1eb8b

13 files changed

+5147
-12
lines changed

pkg/database/config.go

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,15 @@ func (c *Client) GetConfigItem(ctx context.Context, key string) (string, error)
2828
}
2929

3030
func (c *Client) SetConfigItem(ctx context.Context, key string, value string) error {
31-
nbUpdated, err := c.Ent.ConfigItem.Update().SetValue(value).Where(configitem.NameEQ(key)).Save(ctx)
32-
33-
switch {
34-
case ent.IsNotFound(err) || nbUpdated == 0:
35-
// not found, create
36-
err := c.Ent.ConfigItem.Create().SetName(key).SetValue(value).Exec(ctx)
37-
if err != nil {
38-
return errors.Wrapf(QueryFail, "insert config item: %s", err)
39-
}
40-
case err != nil:
41-
return errors.Wrapf(QueryFail, "update config item: %s", err)
31+
err := c.Ent.ConfigItem.
32+
Create().
33+
SetName(key).
34+
SetValue(value).
35+
OnConflictColumns(configitem.FieldName).
36+
UpdateNewValues().
37+
Exec(ctx)
38+
if err != nil {
39+
return fmt.Errorf("insert/update config item: %w", err)
4240
}
4341

4442
return nil

0 commit comments

Comments
 (0)