-- read namespace from global env local _G = _G local Grichelde = _G.Grichelde local pairs, find, color, cOrange, toNumber = Grichelde.functions.pairs, Grichelde.functions.find, Grichelde.functions.color, Grichelde.functions.cOrange, Grichelde.functions.toNumber function Grichelde:Upgrade_To_v060() self:PrefixedPrint(self.L.Upgrade_ToVersion, cOrange("0.6.0")) local replacements = self.db.profile.replacements or {} self:DebugPrint("Upgrade_To_v060 : old database") self:DebugPrint(replacements) for _, replTable in pairs(replacements) do replTable["ignoreCase"] = not replTable["caseSensitive"] replTable["caseSensitive"] = nil end self:DebugPrint("Upgrade_To_v060 : new database") self:DebugPrint(replacements) return 0, 6, 0 end function Grichelde:Upgrade_To_v070() self:PrefixedPrint(self.L.Upgrade_ToVersion, cOrange("0.7.0")) local replacements = self.db.profile.replacements or {} self:DebugPrint("Upgrade_To_v070 : old replacements") self:DebugPrint(replacements) for _, replTable in pairs(replacements) do replTable["exactCase"] = not replTable["ignoreCase"] replTable["ignoreCase"] = nil end self:DebugPrint("Upgrade_To_v070 : new replacements") self:DebugPrint(replacements) return 0, 7, 0 end function Grichelde:Upgrade_To_v072() self:PrefixedPrint(self.L.Upgrade_ToVersion, cOrange("0.7.2")) self:DebugPrint("Upgrade_To_v072 : old database") self:DebugPrint(self.db.profile) self.db.profile["minimapButton"] = { hide = false } self:DebugPrint("Upgrade_To_v072 : new database") self:DebugPrint(self.db.profile) return 0, 7, 2 end function Grichelde:Upgrade_To_v080() self:PrefixedPrint(self.L.Upgrade_ToVersion, cOrange("0.8.0")) local replacements = self.db.profile.replacements or {} self:DebugPrint("Upgrade_To_v080 : old replacements") self:DebugPrint(replacements) for _, replTable in pairs(replacements) do replTable["active"] = true end self:DebugPrint("Upgrade_To_v080 : new replacements") self:DebugPrint(self.db.profile) return 0, 8, 0 end function Grichelde:UpgradeDatabase() local dbVersion = self.db.global.version or "0.0.0" self:DebugPrint("Database version:", dbVersion) local _, _, maj, min, pat = find(dbVersion, "(%d+)%.(%d+)%.(%d+).*") local major, minor, patch = toNumber(maj) or 0, toNumber(min) or 0, toNumber(pat) or 0 local upgrade = 0 local error = false if major == 0 then if minor < 6 then upgrade = upgrade + 1 major, minor, patch = self:Upgrade_To_v060(dbVersion) end if minor < 7 then upgrade = upgrade + 1 major, minor, patch = self:Upgrade_To_v070(dbVersion) end if minor == 7 then if patch < 2 then upgrade = upgrade + 1 major, minor, patch = self:Upgrade_To_v072(dbVersion) end end if minor < 8 then upgrade = upgrade + 1 major, minor, patch = self:Upgrade_To_v080(dbVersion) end end if upgrade == 0 then self:DebugPrint("Database up-to-date") else if not error then self.db.global.version = self.version self:PrefixedPrint(color(Grichelde.COLOR_CODES.GREEN, self.L.Upgrade_Successful)) end end end