/Aurora/DataManager/Migration/Migrators/GridRegion/GridRegionMigrator_2.cs
C# | 92 lines | 53 code | 8 blank | 31 comment | 0 complexity | 414adb3f48ff72690a174724585d0ab9 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 GridRegionMigrator_2 : Migrator 36 { 37 public GridRegionMigrator_2() 38 { 39 Version = new Version(0, 0, 2); 40 MigrationName = "GridRegions"; 41 42 schema = new List<SchemaDefinition>(); 43 44 // 45 // Change summery: 46 // 47 // Add the new 'gridregions' table to replace the old 'regions' table 48 // 49 AddSchema("gridregions", ColDefs( 50 ColDef("ScopeID", ColumnTypes.String45), 51 ColDef("RegionUUID", ColumnTypes.String45), 52 ColDef("RegionName", ColumnTypes.String50), 53 ColDef("LocX", ColumnTypes.Integer11), 54 ColDef("LocY", ColumnTypes.Integer11), 55 ColDef("LocZ", ColumnTypes.Integer11), 56 ColDef("OwnerUUID", ColumnTypes.String45), 57 ColDef("Access", ColumnTypes.Integer11), 58 ColDef("SizeX", ColumnTypes.Integer11), 59 ColDef("SizeY", ColumnTypes.Integer11), 60 ColDef("SizeZ", ColumnTypes.Integer11), 61 ColDef("Flags", ColumnTypes.Integer11), 62 ColDef("SessionID", ColumnTypes.String45), 63 ColDef("Info", ColumnTypes.Text) 64 ), IndexDefs( 65 IndexDef(new string[2] {"ScopeID", "RegionUUID"}, IndexType.Primary), 66 IndexDef(new string[1] {"RegionName"}, IndexType.Unique), 67 IndexDef(new string[2] {"Flags", "ScopeID"}, IndexType.Index), 68 IndexDef(new string[3] {"LocX", "LocY", "ScopeID"}, IndexType.Unique) 69 )); 70 } 71 72 protected override void DoCreateDefaults(IDataConnector genericData) 73 { 74 EnsureAllTablesInSchemaExist(genericData); 75 } 76 77 protected override bool DoValidate(IDataConnector genericData) 78 { 79 return TestThatAllTablesValidate(genericData); 80 } 81 82 protected override void DoMigrate(IDataConnector genericData) 83 { 84 DoCreateDefaults(genericData); 85 } 86 87 protected override void DoPrepareRestorePoint(IDataConnector genericData) 88 { 89 CopyAllTablesToTempVersions(genericData); 90 } 91 } 92}