diff options
author | Johan Berntsson | 2008-03-07 08:10:52 +0000 |
---|---|---|
committer | Johan Berntsson | 2008-03-07 08:10:52 +0000 |
commit | b99455d23d57d10c221929a9233520026aed2cd4 (patch) | |
tree | 681bea0b0dfcaf3c13c6d86afe9f7862138eca77 /OpenSim/Framework/Data.MySQL | |
parent | * Fix for exception in landmanager crash. (diff) | |
download | opensim-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')
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 @@ | |||
1 | DROP PROCEDURE IF EXISTS upgraderegions3; | ||
2 | |||
3 | create procedure upgraderegions3() | ||
4 | BEGIN | ||
5 | DECLARE db_name varchar(64); | ||
6 | select database() into db_name; | ||
7 | IF ((select count(*) from information_schema.columns where table_name='regions' and column_name='owner_uuid' and table_schema=db_name) > 0) | ||
8 | THEN | ||
9 | ALTER TABLE `regions`, COMMENT='Rev. 3'; | ||
10 | ELSE | ||
11 | ALTER TABLE `regions` | ||
12 | ADD COLUMN `owner_uuid` varchar(36) default '00000000-0000-0000-0000-000000000000' not null after serverRemotingPort, COMMENT='Rev. 3'; | ||
13 | END IF; | ||
14 | END; | ||
15 | |||
16 | call upgraderegions3(); | ||
17 | |||
18 | |||