aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Data.MySQL
diff options
context:
space:
mode:
authorJohan Berntsson2008-03-07 08:10:52 +0000
committerJohan Berntsson2008-03-07 08:10:52 +0000
commitb99455d23d57d10c221929a9233520026aed2cd4 (patch)
tree681bea0b0dfcaf3c13c6d86afe9f7862138eca77 /OpenSim/Framework/Data.MySQL
parent* Fix for exception in landmanager crash. (diff)
downloadopensim-SC_OLD-b99455d23d57d10c221929a9233520026aed2cd4.zip
opensim-SC_OLD-b99455d23d57d10c221929a9233520026aed2cd4.tar.gz
opensim-SC_OLD-b99455d23d57d10c221929a9233520026aed2cd4.tar.bz2
opensim-SC_OLD-b99455d23d57d10c221929a9233520026aed2cd4.tar.xz
Fix to solve mantis 717 problem. Makes sure the region DB schema is up to date and consistent
Diffstat (limited to 'OpenSim/Framework/Data.MySQL')
-rw-r--r--OpenSim/Framework/Data.MySQL/MySQLGridData.cs7
-rw-r--r--OpenSim/Framework/Data.MySQL/Resources/CreateRegionsTable.sql3
-rw-r--r--OpenSim/Framework/Data.MySQL/Resources/UpgradeRegionsTableToVersion3.sql18
3 files changed, 26 insertions, 2 deletions
diff --git a/OpenSim/Framework/Data.MySQL/MySQLGridData.cs b/OpenSim/Framework/Data.MySQL/MySQLGridData.cs
index eefb4e9..0ae8e0b 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLGridData.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLGridData.cs
@@ -97,11 +97,16 @@ namespace OpenSim.Framework.Data.MySQL
97 database.ExecuteResourceSql("CreateRegionsTable.sql"); 97 database.ExecuteResourceSql("CreateRegionsTable.sql");
98 return; 98 return;
99 } 99 }
100 else if (oldVersion.Contains("Rev. 1")) 100 if (oldVersion.Contains("Rev. 1"))
101 { 101 {
102 database.ExecuteResourceSql("UpgradeRegionsTableToVersion2.sql"); 102 database.ExecuteResourceSql("UpgradeRegionsTableToVersion2.sql");
103 return; 103 return;
104 } 104 }
105 if (oldVersion.Contains("Rev. 2"))
106 {
107 database.ExecuteResourceSql("UpgradeRegionsTableToVersion3.sql");
108 return;
109 }
105 } 110 }
106 111
107 #endregion 112 #endregion
diff --git a/OpenSim/Framework/Data.MySQL/Resources/CreateRegionsTable.sql b/OpenSim/Framework/Data.MySQL/Resources/CreateRegionsTable.sql
index 23535af..cb0f9bd 100644
--- a/OpenSim/Framework/Data.MySQL/Resources/CreateRegionsTable.sql
+++ b/OpenSim/Framework/Data.MySQL/Resources/CreateRegionsTable.sql
@@ -23,9 +23,10 @@ CREATE TABLE `regions` (
23 `regionUserRecvKey` varchar(128) default NULL, 23 `regionUserRecvKey` varchar(128) default NULL,
24 `regionUserSendKey` varchar(128) default NULL, `regionMapTexture` varchar(36) default NULL, 24 `regionUserSendKey` varchar(128) default NULL, `regionMapTexture` varchar(36) default NULL,
25 `serverHttpPort` int(10) default NULL, `serverRemotingPort` int(10) default NULL, 25 `serverHttpPort` int(10) default NULL, `serverRemotingPort` int(10) default NULL,
26 `owner_uuid` varchar(36) default '00000000-0000-0000-0000-000000000000' not null,
26 `originUUID` varchar(36), 27 `originUUID` varchar(36),
27 PRIMARY KEY (`uuid`), 28 PRIMARY KEY (`uuid`),
28 KEY `regionName` (`regionName`), 29 KEY `regionName` (`regionName`),
29 KEY `regionHandle` (`regionHandle`), 30 KEY `regionHandle` (`regionHandle`),
30 KEY `overrideHandles` (`eastOverrideHandle`,`westOverrideHandle`,`southOverrideHandle`,`northOverrideHandle`) 31 KEY `overrideHandles` (`eastOverrideHandle`,`westOverrideHandle`,`southOverrideHandle`,`northOverrideHandle`)
31) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Rev. 2'; 32) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Rev. 3';
diff --git a/OpenSim/Framework/Data.MySQL/Resources/UpgradeRegionsTableToVersion3.sql b/OpenSim/Framework/Data.MySQL/Resources/UpgradeRegionsTableToVersion3.sql
new file mode 100644
index 0000000..b48afec
--- /dev/null
+++ b/OpenSim/Framework/Data.MySQL/Resources/UpgradeRegionsTableToVersion3.sql
@@ -0,0 +1,18 @@
1DROP PROCEDURE IF EXISTS upgraderegions3;
2
3create procedure upgraderegions3()
4BEGIN
5DECLARE db_name varchar(64);
6select database() into db_name;
7IF ((select count(*) from information_schema.columns where table_name='regions' and column_name='owner_uuid' and table_schema=db_name) > 0)
8THEN
9 ALTER TABLE `regions`, COMMENT='Rev. 3';
10ELSE
11 ALTER TABLE `regions`
12 ADD COLUMN `owner_uuid` varchar(36) default '00000000-0000-0000-0000-000000000000' not null after serverRemotingPort, COMMENT='Rev. 3';
13END IF;
14END;
15
16call upgraderegions3();
17
18