From 868741ebe10ea6beac0e44d8b65751da9be6f676 Mon Sep 17 00:00:00 2001 From: Leonmmcoset Date: Thu, 23 Oct 2025 20:02:41 +0800 Subject: [PATCH] fix --- assets | 2 +- inventory/setting.go | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/assets b/assets index 6dc3943..3a21802 160000 --- a/assets +++ b/assets @@ -1 +1 @@ -Subproject commit 6dc3943b706bc57ee7258b0ad36307ff30fd1819 +Subproject commit 3a21802d76555cece369ab725ba4619aa76fbb95 diff --git a/inventory/setting.go b/inventory/setting.go index 12bce19..f705e8a 100644 --- a/inventory/setting.go +++ b/inventory/setting.go @@ -70,10 +70,18 @@ func (c *settingClient) Gets(ctx context.Context, names []string) (map[string]st func (c *settingClient) Set(ctx context.Context, settings map[string]string) error { for k, v := range settings { - if err := c.client.Setting.Update().Where(setting.Name(k)).SetValue(v).Exec(ctx); err != nil { - return fmt.Errorf("failed to create setting %q: %w", k, err) + // 尝试更新现有记录 + affected, err := c.client.Setting.Update().Where(setting.Name(k)).SetValue(v).Save(ctx) + if err != nil { + return fmt.Errorf("failed to update setting %q: %w", k, err) + } + + // 如果没有记录被更新,创建新记录 + if affected == 0 { + if err := c.client.Setting.Create().SetName(k).SetValue(v).Exec(ctx); err != nil { + return fmt.Errorf("failed to create setting %q: %w", k, err) + } } - } return nil