♻️ 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
This commit is contained in:
Apple\Apple
2025-06-15 03:12:34 +08:00
parent abfb3f4006
commit 5adf1e272d

View File

@@ -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", "")
}