From 202a4bec13a37d8a2f702f879a5e2b0d2e74085a Mon Sep 17 00:00:00 2001
From: Sean Dague
Date: Thu, 12 Jun 2008 18:44:58 +0000
Subject: Fix mysql migrations.  This is tested with an existing up to date
 schema, and no schema.  It should also work with a non up to date schema as
 well.

Btw, meetings in which I can get code done are the right kind of meetings.



---
 OpenSim/Data/MySQL/MySQLDataStore.cs                |  1 +
 OpenSim/Data/MySQL/MySQLInventoryData.cs            |  2 +-
 OpenSim/Data/MySQL/MySQLUserData.cs                 |  2 +-
 OpenSim/Data/MySQL/Resources/001_AssetStore.sql     |  6 +++++-
 OpenSim/Data/MySQL/Resources/001_InventoryStore.sql |  9 +++++++--
 OpenSim/Data/MySQL/Resources/001_RegionStore.sql    | 16 ++++++++++------
 OpenSim/Data/MySQL/Resources/001_UserStore.sql      | 13 +++++++------
 7 files changed, 32 insertions(+), 17 deletions(-)

(limited to 'OpenSim/Data/MySQL')

diff --git a/OpenSim/Data/MySQL/MySQLDataStore.cs b/OpenSim/Data/MySQL/MySQLDataStore.cs
index e9bc365..01cd605 100644
--- a/OpenSim/Data/MySQL/MySQLDataStore.cs
+++ b/OpenSim/Data/MySQL/MySQLDataStore.cs
@@ -90,6 +90,7 @@ namespace OpenSim.Data.MySQL
 
             m_log.Info("[REGION DB]: MySql - connecting: " + connectionstring);
             m_connection = new MySqlConnection(connectionstring);
+            m_connection.Open();
 
             // This actually does the roll forward assembly stuff
             Assembly assem = GetType().Assembly;
diff --git a/OpenSim/Data/MySQL/MySQLInventoryData.cs b/OpenSim/Data/MySQL/MySQLInventoryData.cs
index 1b86abf..780b96f 100644
--- a/OpenSim/Data/MySQL/MySQLInventoryData.cs
+++ b/OpenSim/Data/MySQL/MySQLInventoryData.cs
@@ -72,7 +72,7 @@ namespace OpenSim.Data.MySQL
 
             // This actually does the roll forward assembly stuff
             Assembly assem = GetType().Assembly;
-            Migration m = new Migration(database.Connection, assem, "AssetStore");
+            Migration m = new Migration(database.Connection, assem, "InventoryStore");
 
             // TODO: After rev 6000, remove this.  People should have
             // been rolled onto the new migration code by then.
diff --git a/OpenSim/Data/MySQL/MySQLUserData.cs b/OpenSim/Data/MySQL/MySQLUserData.cs
index 7d2da3a..279ff71 100644
--- a/OpenSim/Data/MySQL/MySQLUserData.cs
+++ b/OpenSim/Data/MySQL/MySQLUserData.cs
@@ -107,7 +107,7 @@ namespace OpenSim.Data.MySQL
 
             // This actually does the roll forward assembly stuff
             Assembly assem = GetType().Assembly;
-            Migration m = new Migration(database.Connection, assem, "AssetStore");
+            Migration m = new Migration(database.Connection, assem, "UserStore");
 
             // TODO: After rev 6000, remove this.  People should have
             // been rolled onto the new migration code by then.
diff --git a/OpenSim/Data/MySQL/Resources/001_AssetStore.sql b/OpenSim/Data/MySQL/Resources/001_AssetStore.sql
index 2c750fe..6a9a127 100644
--- a/OpenSim/Data/MySQL/Resources/001_AssetStore.sql
+++ b/OpenSim/Data/MySQL/Resources/001_AssetStore.sql
@@ -1,3 +1,5 @@
+BEGIN;
+
 CREATE TABLE `assets` (
   `id` binary(16) NOT NULL,
   `name` varchar(64) NOT NULL,
@@ -8,4 +10,6 @@ CREATE TABLE `assets` (
   `temporary` tinyint(1) NOT NULL,
   `data` longblob NOT NULL,
   PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rev. 1';
\ No newline at end of file
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rev. 1';
+
+COMMIT;
\ No newline at end of file
diff --git a/OpenSim/Data/MySQL/Resources/001_InventoryStore.sql b/OpenSim/Data/MySQL/Resources/001_InventoryStore.sql
index 84701db..40dc91c 100644
--- a/OpenSim/Data/MySQL/Resources/001_InventoryStore.sql
+++ b/OpenSim/Data/MySQL/Resources/001_InventoryStore.sql
@@ -1,3 +1,5 @@
+BEGIN;
+
 CREATE TABLE `inventoryfolders` (
   `folderID` varchar(36) NOT NULL default '',
   `agentID` varchar(36) default NULL,
@@ -8,7 +10,8 @@ CREATE TABLE `inventoryfolders` (
   PRIMARY KEY  (`folderID`),
   KEY `owner` (`agentID`),
   KEY `parent` (`parentFolderID`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rev. 2';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
 CREATE TABLE `inventoryitems` (
   `inventoryID` varchar(36) NOT NULL default '',
   `assetID` varchar(36) default NULL,
@@ -32,4 +35,6 @@ CREATE TABLE `inventoryitems` (
   PRIMARY KEY  (`inventoryID`),
   KEY `owner` (`avatarID`),
   KEY `folder` (`parentFolderID`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rev. 3';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+COMMIT;
\ No newline at end of file
diff --git a/OpenSim/Data/MySQL/Resources/001_RegionStore.sql b/OpenSim/Data/MySQL/Resources/001_RegionStore.sql
index 6604c3b..31164b3 100644
--- a/OpenSim/Data/MySQL/Resources/001_RegionStore.sql
+++ b/OpenSim/Data/MySQL/Resources/001_RegionStore.sql
@@ -1,3 +1,5 @@
+BEGIN;
+
 CREATE TABLE `prims` (
   `UUID` varchar(255) NOT NULL,
   `RegionUUID` varchar(255) default NULL,
@@ -46,7 +48,7 @@ CREATE TABLE `prims` (
   `SitTargetOrientY` float default NULL,
   `SitTargetOrientZ` float default NULL,
   PRIMARY KEY  (`UUID`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
 
 CREATE TABLE `primshapes` (
   `UUID` varchar(255) NOT NULL,
@@ -77,7 +79,7 @@ CREATE TABLE `primshapes` (
   `Texture` longblob,
   `ExtraParams` longblob,
   PRIMARY KEY  (`UUID`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
 
 CREATE TABLE `primitems` (
   `itemID` varchar(255) NOT NULL,
@@ -99,13 +101,13 @@ CREATE TABLE `primitems` (
   `everyonePermissions` int(11) default NULL,
   `groupPermissions` int(11) default NULL,
   PRIMARY KEY  (`itemID`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
 
 CREATE TABLE `terrain` (
   `RegionUUID` varchar(255) default NULL,
   `Revision` int(11) default NULL,
   `Heightfield` longblob
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
 
 CREATE TABLE `land` (
   `UUID` varchar(255) NOT NULL,
@@ -141,10 +143,12 @@ CREATE TABLE `land` (
   `UserLookAtZ` float default NULL,
   `AuthbuyerID` varchar(36) NOT NULL default '00000000-0000-0000-0000-000000000000',
   PRIMARY KEY  (`UUID`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rev. 2'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 CREATE TABLE `landaccesslist` (
   `LandUUID` varchar(255) default NULL,
   `AccessUUID` varchar(255) default NULL,
   `Flags` int(11) default NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
\ No newline at end of file
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+COMMIT;
\ No newline at end of file
diff --git a/OpenSim/Data/MySQL/Resources/001_UserStore.sql b/OpenSim/Data/MySQL/Resources/001_UserStore.sql
index 7ab628f..29ebc7d 100644
--- a/OpenSim/Data/MySQL/Resources/001_UserStore.sql
+++ b/OpenSim/Data/MySQL/Resources/001_UserStore.sql
@@ -1,3 +1,5 @@
+BEGIN;
+
 SET FOREIGN_KEY_CHECKS=0;
 -- ----------------------------
 -- Table structure for agents
@@ -17,7 +19,7 @@ CREATE TABLE `agents` (
   PRIMARY KEY  (`UUID`),
   UNIQUE KEY `session` (`sessionID`),
   UNIQUE KEY `ssession` (`secureSessionID`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rev. 1';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 -- Create schema avatar_appearance
 --
@@ -54,10 +56,8 @@ CREATE TABLE `avatarappearance` (
   Underpants_Asset char(36) NOT NULL,
   Skirt_Item char(36) NOT NULL,
   Skirt_Asset char(36) NOT NULL,
-
-
   PRIMARY KEY  (`Owner`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rev.2';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 SET FOREIGN_KEY_CHECKS=0;
 -- ----------------------------
@@ -69,7 +69,7 @@ CREATE TABLE `userfriends` (
    `friendPerms` INT NOT NULL,
    `datetimestamp` INT NOT NULL,
 	 UNIQUE KEY  (`ownerID`, `friendID`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rev.1';SET FOREIGN_KEY_CHECKS=0;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 -- ----------------------------
 -- Table structure for users
 -- ----------------------------
@@ -99,8 +99,9 @@ CREATE TABLE `users` (
   `webLoginKey` varchar(36) default NULL,
   PRIMARY KEY  (`UUID`),
   UNIQUE KEY `usernames` (`username`,`lastname`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rev. 2';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 -- ----------------------------
 -- Records 
 -- ----------------------------
+COMMIT;
\ No newline at end of file
-- 
cgit v1.1