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.
0.6.0-stable
Sean Dague 2008-06-16 14:10:51 +00:00
parent 11d68ce0f5
commit ec78a2871b
3 changed files with 15 additions and 6 deletions

View File

@ -222,6 +222,8 @@ namespace OpenSim.Data
{
string[] names = _assem.GetManifestResourceNames();
SortedList<int, string> migrations = new SortedList<int, string>();
// because life is funny if we don't
Array.Sort(names);
foreach (string s in names)
{

View File

@ -125,8 +125,7 @@ namespace OpenSim.Data.MySQL
new MySqlCommand(
"SELECT name, description, assetType, invType, local, temporary, data FROM assets WHERE id=?id",
_dbConnection.Connection);
MySqlParameter p = cmd.Parameters.Add("?id", MySqlDbType.Binary, 16);
p.Value = assetID.GetBytes();
cmd.Parameters.AddWithValue("?id", assetID.ToString());
try
{
@ -180,8 +179,7 @@ namespace OpenSim.Data.MySQL
{
using (cmd)
{
MySqlParameter p = cmd.Parameters.Add("?id", MySqlDbType.Binary, 16);
p.Value = asset.FullID.GetBytes();
cmd.Parameters.AddWithValue("?id", asset.FullID.ToString());
cmd.Parameters.AddWithValue("?name", asset.Name);
cmd.Parameters.AddWithValue("?description", asset.Description);
cmd.Parameters.AddWithValue("?assetType", asset.Type);
@ -219,8 +217,8 @@ namespace OpenSim.Data.MySQL
new MySqlCommand(
"SELECT id FROM assets WHERE id=?id",
_dbConnection.Connection);
MySqlParameter p = cmd.Parameters.Add("?id", MySqlDbType.Binary, 16);
p.Value = uuid.GetBytes();
cmd.Parameters.AddWithValue("?id", uuid.ToString());
try
{

View File

@ -0,0 +1,9 @@
BEGIN;
ALTER TABLE assets change id oldid binary(16);
ALTER TABLE assets add id varchar(36) not null default '';
UPDATE 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));
ALTER TABLE assets drop oldid;
ALTER TABLE assets add constraint primary key(id);
COMMIT;