diff --git a/Passepartout/App/Managers/DefaultUpgradeManagerStrategy.swift b/Passepartout/App/Managers/DefaultUpgradeManagerStrategy.swift index 57753f01..9646649a 100644 --- a/Passepartout/App/Managers/DefaultUpgradeManagerStrategy.swift +++ b/Passepartout/App/Managers/DefaultUpgradeManagerStrategy.swift @@ -30,11 +30,11 @@ public final class DefaultUpgradeManagerStrategy: UpgradeManagerStrategy { public init() { } - public func doMigrateStore(_ store: KeyValueStore, lastVersion: String?) { - if let lastVersion { - pp_log.debug("Upgrade from \(lastVersion)") - } else { + public func doMigrate(store: KeyValueStore, lastVersion: String?) { + guard let lastVersion else { pp_log.debug("Fresh install") + return } + pp_log.debug("Upgrade from \(lastVersion)") } } diff --git a/Passepartout/App/Managers/UpgradeManager.swift b/Passepartout/App/Managers/UpgradeManager.swift index 372f3ca7..3983608d 100644 --- a/Passepartout/App/Managers/UpgradeManager.swift +++ b/Passepartout/App/Managers/UpgradeManager.swift @@ -47,10 +47,11 @@ public final class UpgradeManager: ObservableObject { self.strategy = strategy } - public func doMigrations(_ profileManager: ProfileManager) { - strategy.doMigrateStore(store, lastVersion: lastVersion) - lastVersion = Constants.Global.appVersionNumber - + public func doMigrations(toVersion currentVersion: String, profileManager: ProfileManager) { + if let lastVersion, currentVersion > lastVersion { + strategy.doMigrate(store: store, lastVersion: lastVersion) + } + lastVersion = currentVersion isDoingMigrations = false } } diff --git a/Passepartout/App/Managers/UpgradeManagerStrategy.swift b/Passepartout/App/Managers/UpgradeManagerStrategy.swift index e8a8545e..a55caa97 100644 --- a/Passepartout/App/Managers/UpgradeManagerStrategy.swift +++ b/Passepartout/App/Managers/UpgradeManagerStrategy.swift @@ -27,5 +27,5 @@ import Foundation import PassepartoutCore public protocol UpgradeManagerStrategy { - func doMigrateStore(_ store: KeyValueStore, lastVersion: String?) + func doMigrate(store: KeyValueStore, lastVersion: String?) } diff --git a/Passepartout/App/Views/OrganizerView+Profiles.swift b/Passepartout/App/Views/OrganizerView+Profiles.swift index f66e84b0..be899269 100644 --- a/Passepartout/App/Views/OrganizerView+Profiles.swift +++ b/Passepartout/App/Views/OrganizerView+Profiles.swift @@ -183,7 +183,10 @@ private extension OrganizerView.ProfilesList { func performMigrationsIfNeeded() { Task { @MainActor in - UpgradeManager.shared.doMigrations(profileManager) + UpgradeManager.shared.doMigrations( + toVersion: Constants.Global.appVersionNumber, + profileManager: profileManager + ) } } }