diff --git a/internal/config/site_settings.go b/internal/config/site_settings.go
index 0e7e513..11fd894 100644
--- a/internal/config/site_settings.go
+++ b/internal/config/site_settings.go
@@ -7,6 +7,7 @@ import (
"metazone.cc/mce/internal/model"
"gorm.io/gorm"
+ "gorm.io/gorm/clause"
)
// SiteSettings 站点设置管理器(DB 持久化 + 内存缓存,不重启生效)
@@ -69,10 +70,13 @@ func (s *SiteSettings) GetBool(key string, defaultVal bool) bool {
return b
}
-// Set 写入设置(同步写 DB + 更新内存)
+// Set 写入设置(同步写 DB + 更新内存,使用 UPSERT 兼容首次保存)
func (s *SiteSettings) Set(key, value string) error {
entry := model.SiteSetting{Key: key, Value: value}
- if err := s.db.Save(&entry).Error; err != nil {
+ if err := s.db.Clauses(clause.OnConflict{
+ Columns: []clause.Column{{Name: "key"}},
+ DoUpdates: clause.AssignmentColumns([]string{"value"}),
+ }).Create(&entry).Error; err != nil {
return err
}
s.mu.Lock()
diff --git a/templates/admin/html/layout/footer.html b/templates/admin/html/layout/footer.html
index 02684c5..9a23e23 100644
--- a/templates/admin/html/layout/footer.html
+++ b/templates/admin/html/layout/footer.html
@@ -3,7 +3,7 @@
{{if .ExtraJS}}
-
+
{{end}}