Después de mirar los dos plugins que hay, empecé con uno que es el oddbdo, que al final no me llevó a nada: conseguía exportar en formato xml pero el importar era un cautiverio.
Así que ya cansado y viendo que mi compañero Diego, (http://community.elgg.org/mod/profile/icondirect.php?lastcache=1223404035&username=dramirez&size=small) al cual le mando un saludo desde acá, hiciera otro plugin. Me sentí desanimado y me tiré al agua de cabeza para hacerlo por mi mismo.
Estuve documentando parte de la migración y la verdad que no me está pareciendo tan dificil de lo que pensaba....por si alguien le viniera bien os lo paso y por favor acepto mejoras y lo que querais. Aun no he migrado todo pero poco a poco voy haciendolo.
Lo tenía en un wiki de redmine....y la red social que estoy migrando es redes.epesca.org (la primera que hice ahora ya hará unos 3 añitos...empezó desde la version 0.4!).
Espero que os valga....Saludos C.
insert into redes1_5.elggusers_entity (guid,username, name, email, password, code, salt, language)
select ident, username, name, email, password, code, null, 'es' from redes.elggusers where (user_type='person');
Para habilitar al usuario. El 1 está reservado para el site, así que debe empezar desde el 2.
De momento paso la propiedad gid de la tabla a no autonumérica. le asigno al admin un valor 500 por ejemplo para que los otros den su incorporación.
insert into redes1_5.elggentities (guid,type, subtype, owner_guid, site_guid, container_guid, access_id, time_created, time_updated, enabled)
select guid, 2, 0, 0, 1, 0, 2, 1242664181, 1242664181 , 1 from elggusers_entity where (guid<>1)
insert into redes1_5.elggmetadata (entity_guid, name_id, value_id, value_type, owner_guid, access_id, time_created, enabled
select guid, 10, 11, 2, 0, 2, 1242680208, 1 from elggusers_entity;
En la tabla 0.9 tenemos las comunidades embebidas en la tabla elggusers con el valor del campo user_type='community';
En la tabla 1.5 tenemos las comunidades en la tabla elgggroups_entities están separadas: guid, name, description
Correspondencia
elgg 0.9 elgg 1.5 ident guid name name description name
insert into redes1_5.elgggroups_entity (guid, name, description)
select ident, name, name from redes.elggusers where (user_type='community');
Con esto ya tendriamos las comunidades creadas.....ufff!
Al igual que con los usuarios hay que repetir el proceso con esta tabla que alberga la información también de las comunidades.
tabla: .elggentities guid type subtype owner_guid site_guid container_guid access_id time_created time_updated enabled tabla: .elgggroups_entities guid 3 0 12 1 12 2 1242685527 1242685527 1
insert into redes1_5.elggentities (guid, type, subtype, owner_guid, site_guid, container_guid, access_id, time_created, time_updated, enabled)
select guid, 3, 0, 12,1, 12, 2, 1242685527, 1242685527, 1 from elgggroups_entity;
tabla 0.9: elggfriends ident owner friend status tabla 1.5: elggentity_relantionships guid_one relationships guid_two
Acá es donde está algo mas jodido porque hay que hacer dos selects
insert into redes1_5.elggentity_relationships (guid_one, relationship, guid_two)
select f.owner, 'friend', f.friend from redes.elggfriends f where f.owner not in (select ident from redes.elggusers where user_type='community') or f.owner not in (select ident from redes.elggusers where user_type='community')
insert into redes1_5.elggentity_relationships (guid_one, relationship, guid_two)
select f.owner, 'member', f.friend from redes.elggfriends f where f.owner not in (select ident from redes.elggusers where user_type='person') or f.owner not in (select ident from redes.elggusers where user_type='person')
Esta consulta la hice mal!, realmente no haria una migración de miembros la mejoro
insert into redes1_5.elggentity_relationships (guid_one, relationship, guid_two)
select f.owner, 'member', f.friend from redes.elggfriends f where f.friend not in (select ident from redes.elggusers where user_type='person')
Esto se podrá ir haciendo poco a poco....pero hay que hacer las carpetas y después los ficheros....así que paso!....lo enlacen a la versión 'antigua'.
elggentitied tiene el valor de type= 'object' = 1.
insert into redes1_5.elggentity (guid, type, subtype, owner_guid, site_guid, container_guid, access_id, time_created, time_updated, enabled)
select ident, 1, owner, 12, 1, 12, 1, 1242687969, 1242687969, 1
info@elgg.org
Security issues should be reported to security@elgg.org!
©2014 the Elgg Foundation
Elgg is a registered trademark of Thematic Networks.
Cover image by Raül Utrera is used under Creative Commons license.
Icons by Flaticon and FontAwesome.
Al final los ficheros, como eran no muchos lo haré a mano, y falta como bug corregir los propietarios de las comunidades....
Saludetes.
Me agoté solo de leer los títulos! Ojalá nunca tenga q hacer una migración como ésta =)
He añadido una corrección al procedimiento...oju como se atraganta y sí es cansino esto de no tener una migración, pero para eso estamos en la comunidad. Entre todos seguro que hacemos algo.