/Aurora/DataManager/Migration/Migrators/UserInfo/UserInfosMigrator_4.cs
C# | 90 lines | 51 code | 8 blank | 31 comment | 0 complexity | 69e1550860507b2928831af000e39e2e MD5 | raw file
1/* 2 * Copyright (c) Contributors, http://aurora-sim.org/ 3 * See CONTRIBUTORS.TXT for a full list of copyright holders. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are met: 7 * * Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * * Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * * Neither the name of the Aurora-Sim Project nor the 13 * names of its contributors may be used to endorse or promote products 14 * derived from this software without specific prior written permission. 15 * 16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY 17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY 20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 */ 27 28using System; 29using System.Collections.Generic; 30using Aurora.Framework; 31using Aurora.Framework.Utilities; 32 33namespace Aurora.DataManager.Migration.Migrators 34{ 35 public class UserInfoMigrator_4 : Migrator 36 { 37 public UserInfoMigrator_4() 38 { 39 Version = new Version(0, 0, 4); 40 MigrationName = "UserInfo"; 41 42 schema = new List<SchemaDefinition>(); 43 44 // 45 // Change summery: 46 // 47 // Add the new UserInfo table that replaces the GridUser and Presence tables 48 // 49 RemoveSchema("userinfo"); 50 AddSchema("userinfo", ColDefs( 51 ColDef("UserID", ColumnTypes.String50), 52 ColDef("RegionID", ColumnTypes.String50), 53 ColDef("LastSeen", ColumnTypes.Integer30), 54 ColDef("IsOnline", ColumnTypes.String36), 55 ColDef("LastLogin", ColumnTypes.String50), 56 ColDef("LastLogout", ColumnTypes.String50), 57 ColDef("Info", ColumnTypes.String512), 58 ColDef("CurrentRegionID", ColumnTypes.Char36), 59 ColDef("CurrentPosition", ColumnTypes.String36), 60 ColDef("CurrentLookat", ColumnTypes.String36), 61 ColDef("HomeRegionID", ColumnTypes.Char36), 62 ColDef("HomePosition", ColumnTypes.String36), 63 ColDef("HomeLookat", ColumnTypes.String36), 64 ColDef("CurrentRegionURI", ColumnTypes.String255) 65 ), IndexDefs( 66 IndexDef(new string[1] {"UserID"}, IndexType.Primary) 67 )); 68 } 69 70 protected override void DoCreateDefaults(IDataConnector genericData) 71 { 72 EnsureAllTablesInSchemaExist(genericData); 73 } 74 75 protected override bool DoValidate(IDataConnector genericData) 76 { 77 return TestThatAllTablesValidate(genericData); 78 } 79 80 protected override void DoMigrate(IDataConnector genericData) 81 { 82 DoCreateDefaults(genericData); 83 } 84 85 protected override void DoPrepareRestorePoint(IDataConnector genericData) 86 { 87 CopyAllTablesToTempVersions(genericData); 88 } 89 } 90}