using System; namespace HISP.Server { static class DataFixerUpper { private static void fixupVersion1_0() { // Add total logins column to UserExt Database.TryExecuteSqlQuery("ALTER TABLE UserExt ADD COLUMN TotalLogins INT;"); Database.TryExecuteSqlQuery("UPDATE UserExt SET TotalLogins=0;"); // Add New column to OnlineUsers. Database.TryExecuteSqlQuery("ALTER TABLE OnlineUsers ADD COLUMN New TEXT(3);"); Database.TryExecuteSqlQuery("UPDATE OnlineUsers SET New=\"NO\";"); // Alter sizes Database.TryExecuteSqlQuery("ALTER TABLE UserExt CHANGE COLUMN ProfilePage ProfilePage TEXT(4000);"); Database.TryExecuteSqlQuery("ALTER TABLE UserExt CHANGE COLUMN PrivateNotes PrivateNotes TEXT(65535);"); Database.TryExecuteSqlQuery("ALTER TABLE MailBox CHANGE COLUMN Subject Subject TEXT(100);"); Database.TryExecuteSqlQuery("ALTER TABLE MailBox CHANGE COLUMN Message Message TEXT(65535);"); Database.TryExecuteSqlQuery("ALTER TABLE Horses CHANGE COLUMN description description TEXT(4000);"); Database.TryExecuteSqlQuery("ALTER TABLE WildHorse CHANGE COLUMN description description TEXT(4000);"); Database.TryExecuteSqlQuery("ALTER TABLE Ranches CHANGE COLUMN title title TEXT(50);"); Database.TryExecuteSqlQuery("ALTER TABLE Ranches CHANGE COLUMN description description TEXT(250);"); } private static void fixupVersion1_1() { // Add data column to shop to ShopInventory Database.TryExecuteSqlQuery("ALTER TABLE ShopInventory ADD COLUMN Data INT;"); Database.TryExecuteSqlQuery("UPDATE ShopInventory SET Data=0;"); } private static void fixupVersion1_7_20() { // Add LastLoadedInVersion column to World. Database.TryExecuteSqlQuery("ALTER TABLE World ADD COLUMN LastLoadedInVersion TEXT(64)"); Database.TryExecuteSqlQuery("UPDATE World SET LastLoadedInVersion=\"v1.7.20\";"); } public static void FixUpDb() { string lastVersionStr = Database.GetLastLoadedVersion(); string currentVersionStr = ServerVersion.GetVersionString(); int lastVersion = Convert.ToInt32(Int32.Parse(lastVersionStr.ToLower().Replace("v", "").Replace(".", ""))); int currentVersion = Convert.ToInt32(Int32.Parse(currentVersionStr.ToLower().Replace("v", "").Replace(".", ""))); if(currentVersion > lastVersion) { Logger.WarnPrint("Migrating Database from " + lastVersionStr + " to " + currentVersionStr); if (lastVersion <= 10) fixupVersion1_0(); if (lastVersion <= 11) fixupVersion1_1(); if (lastVersion <= 1720) fixupVersion1_7_20(); Database.SetLastLoadedVersion(ServerVersion.GetVersionString()); } } } }