aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorSean Dague2008-06-16 14:10:51 +0000
committerSean Dague2008-06-16 14:10:51 +0000
commitec78a2871bedd951844be01490fcb85e22dac178 (patch)
tree8d22fbfcc18697021e0c2611f98a30de13c6c461
parent* 0001558: [PATCH] Add support for full collision geometry feature set for li... (diff)
downloadopensim-SC_OLD-ec78a2871bedd951844be01490fcb85e22dac178.zip
opensim-SC_OLD-ec78a2871bedd951844be01490fcb85e22dac178.tar.gz
opensim-SC_OLD-ec78a2871bedd951844be01490fcb85e22dac178.tar.bz2
opensim-SC_OLD-ec78a2871bedd951844be01490fcb85e22dac178.tar.xz
the beginning of the great id format migration. This makes
asset uuids no longer binary. I've tested this migration a few times, and it seems working in all the scenarios I've found but it wouldn't hurt to backup your asset db before running this as it does touch a very sensitive part of our content system.
-rw-r--r--OpenSim/Data/Migration.cs2
-rw-r--r--OpenSim/Data/MySQL/MySQLAssetData.cs10
-rw-r--r--OpenSim/Data/MySQL/Resources/002_AssetStore.sql9
3 files changed, 15 insertions, 6 deletions
diff --git a/OpenSim/Data/Migration.cs b/OpenSim/Data/Migration.cs
index d23200c..45b44b9 100644
--- a/OpenSim/Data/Migration.cs
+++ b/OpenSim/Data/Migration.cs
@@ -222,6 +222,8 @@ namespace OpenSim.Data
222 { 222 {
223 string[] names = _assem.GetManifestResourceNames(); 223 string[] names = _assem.GetManifestResourceNames();
224 SortedList<int, string> migrations = new SortedList<int, string>(); 224 SortedList<int, string> migrations = new SortedList<int, string>();
225 // because life is funny if we don't
226 Array.Sort(names);
225 227
226 foreach (string s in names) 228 foreach (string s in names)
227 { 229 {
diff --git a/OpenSim/Data/MySQL/MySQLAssetData.cs b/OpenSim/Data/MySQL/MySQLAssetData.cs
index f51eee2..3cda5b8 100644
--- a/OpenSim/Data/MySQL/MySQLAssetData.cs
+++ b/OpenSim/Data/MySQL/MySQLAssetData.cs
@@ -125,8 +125,7 @@ namespace OpenSim.Data.MySQL
125 new MySqlCommand( 125 new MySqlCommand(
126 "SELECT name, description, assetType, invType, local, temporary, data FROM assets WHERE id=?id", 126 "SELECT name, description, assetType, invType, local, temporary, data FROM assets WHERE id=?id",
127 _dbConnection.Connection); 127 _dbConnection.Connection);
128 MySqlParameter p = cmd.Parameters.Add("?id", MySqlDbType.Binary, 16); 128 cmd.Parameters.AddWithValue("?id", assetID.ToString());
129 p.Value = assetID.GetBytes();
130 129
131 try 130 try
132 { 131 {
@@ -180,8 +179,7 @@ namespace OpenSim.Data.MySQL
180 { 179 {
181 using (cmd) 180 using (cmd)
182 { 181 {
183 MySqlParameter p = cmd.Parameters.Add("?id", MySqlDbType.Binary, 16); 182 cmd.Parameters.AddWithValue("?id", asset.FullID.ToString());
184 p.Value = asset.FullID.GetBytes();
185 cmd.Parameters.AddWithValue("?name", asset.Name); 183 cmd.Parameters.AddWithValue("?name", asset.Name);
186 cmd.Parameters.AddWithValue("?description", asset.Description); 184 cmd.Parameters.AddWithValue("?description", asset.Description);
187 cmd.Parameters.AddWithValue("?assetType", asset.Type); 185 cmd.Parameters.AddWithValue("?assetType", asset.Type);
@@ -219,8 +217,8 @@ namespace OpenSim.Data.MySQL
219 new MySqlCommand( 217 new MySqlCommand(
220 "SELECT id FROM assets WHERE id=?id", 218 "SELECT id FROM assets WHERE id=?id",
221 _dbConnection.Connection); 219 _dbConnection.Connection);
222 MySqlParameter p = cmd.Parameters.Add("?id", MySqlDbType.Binary, 16); 220
223 p.Value = uuid.GetBytes(); 221 cmd.Parameters.AddWithValue("?id", uuid.ToString());
224 222
225 try 223 try
226 { 224 {
diff --git a/OpenSim/Data/MySQL/Resources/002_AssetStore.sql b/OpenSim/Data/MySQL/Resources/002_AssetStore.sql
new file mode 100644
index 0000000..a7d7fca
--- /dev/null
+++ b/OpenSim/Data/MySQL/Resources/002_AssetStore.sql
@@ -0,0 +1,9 @@
1BEGIN;
2
3ALTER TABLE assets change id oldid binary(16);
4ALTER TABLE assets add id varchar(36) not null default '';
5UPDATE assets set id = concat(substr(hex(oldid),1,8),"-",substr(hex(oldid),9,4),"-",substr(hex(oldid),13,4),"-",substr(hex(oldid),17,4),"-",substr(hex(oldid),21,12));
6ALTER TABLE assets drop oldid;
7ALTER TABLE assets add constraint primary key(id);
8
9COMMIT; \ No newline at end of file