Преглед изворни кода

♻️ refactor(console_migrate): migrate legacy UptimeKumaUrl/Slug to new uptime_kuma_groups format

* Added migration logic in `controller/console_migrate.go`
  * Detects both `UptimeKumaUrl` and `UptimeKumaSlug`
  * Creates a single-group JSON array under `console_setting.uptime_kuma_groups`
    - Uses `categoryName: "old"` to mark migrated data
    - Preserves original `url` and `slug` values
  * Clears and removes obsolete `UptimeKumaUrl` and `UptimeKumaSlug` keys
* Removes outdated code paths that wrote to `console_setting.uptime_kuma_url` and `console_setting.uptime_kuma_slug`
* Keeps frontend `DashboardSetting.js` compatible — no additional changes required
* Aligns migration behavior with previous `ApiInfo` refactor for consistent console settings management
Apple\Apple пре 8 месеци
родитељ
комит
5adf1e272d
1 измењених фајлова са 20 додато и 5 уклоњено
  1. 20 5
      controller/console_migrate.go

+ 20 - 5
controller/console_migrate.go

@@ -67,13 +67,28 @@ func MigrateConsoleSetting(c *gin.Context) {
         }
         model.UpdateOption("FAQ", "")
     }
-    // Uptime
-    if v := valMap["UptimeKumaUrl"]; v != "" {
-        model.UpdateOption("console_setting.uptime_kuma_url", v)
+    // Uptime Kuma 迁移到新的 groups 结构(console_setting.uptime_kuma_groups)
+    url := valMap["UptimeKumaUrl"]
+    slug := valMap["UptimeKumaSlug"]
+    if url != "" && slug != "" {
+        // 仅当同时存在 URL 与 Slug 时才进行迁移
+        groups := []map[string]interface{}{
+            {
+                "id":           1,
+                "categoryName": "old",
+                "url":          url,
+                "slug":         slug,
+                "description":  "",
+            },
+        }
+        bytes, _ := json.Marshal(groups)
+        model.UpdateOption("console_setting.uptime_kuma_groups", string(bytes))
+    }
+    // 清空旧键内容
+    if url != "" {
         model.UpdateOption("UptimeKumaUrl", "")
     }
-    if v := valMap["UptimeKumaSlug"]; v != "" {
-        model.UpdateOption("console_setting.uptime_kuma_slug", v)
+    if slug != "" {
         model.UpdateOption("UptimeKumaSlug", "")
     }