From e8acd1f16c43d0ba93bc84811284bbe241f8dad8 Mon Sep 17 00:00:00 2001 From: Robin Shen Date: Sat, 20 Sep 2025 07:54:18 +0800 Subject: [PATCH] fix: Failed to upgrade /opt/onedev 12.0.10 -> latest (OD-2557) --- .../server/data/migration/DataMigrator.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/server-core/src/main/java/io/onedev/server/data/migration/DataMigrator.java b/server-core/src/main/java/io/onedev/server/data/migration/DataMigrator.java index f6f81774d0..e399a3f920 100644 --- a/server-core/src/main/java/io/onedev/server/data/migration/DataMigrator.java +++ b/server-core/src/main/java/io/onedev/server/data/migration/DataMigrator.java @@ -8277,4 +8277,31 @@ public class DataMigrator { } } + private void migrate210(File dataDir, Stack versions) { + for (File file : dataDir.listFiles()) { + if (file.getName().startsWith("Settings.xml")) { + VersionedXmlDoc dom = VersionedXmlDoc.fromFile(file); + for (Element element : dom.getRootElement().elements()) { + String key = element.elementTextTrim("key"); + if (key.equals("ISSUE")) { + Element valueElement = element.element("value"); + if (valueElement != null) { + Element transitionSpecsElement = valueElement.element("transitionSpecs"); + for (Element transitionSpecElement : transitionSpecsElement.elements()) { + String className = transitionSpecElement.getName(); + if (className.contains("IssueStateTransitedSpec")) { + Element statesElement = transitionSpecElement.element("states"); + if (statesElement != null) { + statesElement.detach(); + } + } + } + } + } + } + dom.writeToFile(file, false); + } + } + } + }