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
parent
11d68ce0f5
commit
ec78a2871b
|
@ -222,6 +222,8 @@ namespace OpenSim.Data
|
||||||
{
|
{
|
||||||
string[] names = _assem.GetManifestResourceNames();
|
string[] names = _assem.GetManifestResourceNames();
|
||||||
SortedList<int, string> migrations = new SortedList<int, string>();
|
SortedList<int, string> migrations = new SortedList<int, string>();
|
||||||
|
// because life is funny if we don't
|
||||||
|
Array.Sort(names);
|
||||||
|
|
||||||
foreach (string s in names)
|
foreach (string s in names)
|
||||||
{
|
{
|
||||||
|
|
|
@ -125,8 +125,7 @@ namespace OpenSim.Data.MySQL
|
||||||
new MySqlCommand(
|
new MySqlCommand(
|
||||||
"SELECT name, description, assetType, invType, local, temporary, data FROM assets WHERE id=?id",
|
"SELECT name, description, assetType, invType, local, temporary, data FROM assets WHERE id=?id",
|
||||||
_dbConnection.Connection);
|
_dbConnection.Connection);
|
||||||
MySqlParameter p = cmd.Parameters.Add("?id", MySqlDbType.Binary, 16);
|
cmd.Parameters.AddWithValue("?id", assetID.ToString());
|
||||||
p.Value = assetID.GetBytes();
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -180,8 +179,7 @@ namespace OpenSim.Data.MySQL
|
||||||
{
|
{
|
||||||
using (cmd)
|
using (cmd)
|
||||||
{
|
{
|
||||||
MySqlParameter p = cmd.Parameters.Add("?id", MySqlDbType.Binary, 16);
|
cmd.Parameters.AddWithValue("?id", asset.FullID.ToString());
|
||||||
p.Value = asset.FullID.GetBytes();
|
|
||||||
cmd.Parameters.AddWithValue("?name", asset.Name);
|
cmd.Parameters.AddWithValue("?name", asset.Name);
|
||||||
cmd.Parameters.AddWithValue("?description", asset.Description);
|
cmd.Parameters.AddWithValue("?description", asset.Description);
|
||||||
cmd.Parameters.AddWithValue("?assetType", asset.Type);
|
cmd.Parameters.AddWithValue("?assetType", asset.Type);
|
||||||
|
@ -219,8 +217,8 @@ namespace OpenSim.Data.MySQL
|
||||||
new MySqlCommand(
|
new MySqlCommand(
|
||||||
"SELECT id FROM assets WHERE id=?id",
|
"SELECT id FROM assets WHERE id=?id",
|
||||||
_dbConnection.Connection);
|
_dbConnection.Connection);
|
||||||
MySqlParameter p = cmd.Parameters.Add("?id", MySqlDbType.Binary, 16);
|
|
||||||
p.Value = uuid.GetBytes();
|
cmd.Parameters.AddWithValue("?id", uuid.ToString());
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
|
@ -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;
|
Loading…
Reference in New Issue