From 5adf1e272d81476fb7c07619ccdc92708fb13cb7 Mon Sep 17 00:00:00 2001 From: "Apple\\Apple" Date: Sun, 15 Jun 2025 03:12:34 +0800 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20refactor(console=5Fmigrate?= =?UTF-8?q?):=20migrate=20legacy=20UptimeKumaUrl/Slug=20to=20new=20uptime?= =?UTF-8?q?=5Fkuma=5Fgroups=20format?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 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 --- controller/console_migrate.go | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/controller/console_migrate.go b/controller/console_migrate.go index 937fa2ee..d25f199b 100644 --- a/controller/console_migrate.go +++ b/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", "") }