Migración XoopsGallery a Gallery2 en Drupal

De GALPon WiKi

Documento creado por capri99 (Carlos Rodríguez). Cualquier aportación será bienvenida :-)

En este documento vamos a explicar cómo hemos hecho para migrar todos los álbumes de fotos que teníamos en el Gallery (versión 1) integrado en el Xoops (mediante el módulo xoopsgallery) al Gallery2 (versión 2) integrado en el Drupal actual.

Me he centrado en las fotos, no así en los usuarios que tenían acceso a esas fotos. La información básica la he sacado del wiki de Gallery2 http://codex.gallery2.org/Gallery2:migration pero hay que adaptarla en un par de detalles si se viene del Xoopsgallery.

Es un proceso un poco pesado pero intentaré explicarlo aquí. En breve, será así:

  1. Preparación del Xoopsgallery para su migración
  2. Instalación del Gallery2 en el servidor
  3. Migración de las imágenes de Xoopsgallery a Gallery2
  4. Integración del Gallery2 con Drupal

¿Qué tenemos?

Tenemos un portal Xoops 2.0.14 con el módulo de Xoopsgallery 1.3.3.9 instalado que FUNCIONA correctamente. Es importante que la versión sea la 2.0.14 o SUPERIOR. Para versiones anteriores, será necesario actualizar las plantillas Smarty http://xoopsgallery.org/modules/mydownloads/

Por otro lado tenemos un Drupal 5.3 instalado que también FUNCIONA y en el que integraremos todos los álbumes a través del módulo para el Gallery2.

Preparando el Xoopsgallery 1

Aquí simplemente vamos a hacer limpieza y comprobación de que el Xoopsgallery funciona bien.

Entramos en el Xoops como administrador y vamos a System --> Modules --> Xoopsgallery

Le damos a:

Check for orphan XoopsGallery records
Check for missing XoopsGallery records

y corregimos cualquier error que pueda haber.

RECOMENDABLE HACER COPIA DE SEGURIDAD DE LOS ÁLBUMES!!! (en nuestro caso /var/www/galpon.org/xoops/modules/xoopsgallery/cache/albums)

Preparando la migración

Ahora vamos a descargar una pequeña ayuda que necesitaremos antes de hacer la migración:

http://xoopsgallery.org/modules/mydownloads/visit.php?cid=3&lid=42

Como he visto que el sitio de XoopsGallery está caido, pongo el archivo aquí: Xg2_XoopsGallery.users.zip

Según la descripción, para migrar ficheros del Xoopsgallery v1 al Gallery2 hay que descomprimir el contenido de Xg2_XoopsGallery.users.zip al directorio donde está el xoopsgallery/cache/albums/. Se observará que un directorio nuevo llamado .users se extraerá.

Este directorio TIENE que existir junto con una serie de ficheros para que luego la importación sea correcta.

Preparando el Gallery2

Instalamos el Gallery2 (en nuestro caso versión 2.2.3) descargado de:

http://codex.gallery2.org/Gallery2:Download#Packages (recomendada la versión Full, aunque con la versión Typical y los módulos de Imagemagick, Migration,Comment, Custom Fields y Hidden Items creo que bastaría.)

y seguimos las instrucciones de su wiki:

http://codex.gallery2.org/Gallery2:How_do_I_Install_Gallery2

Una vez instalado correctamente el Gallery2, entramos en la galería de fotos como Administrador y vamos a "Administración del sitio" para seguir los pasos del wiki en lo que se refiere a la preparación del Gallery2 para la migración:

http://codex.gallery2.org/Gallery2:migration#Install_Gallery_2

Sobre todo activar los siguientes plugins:

URL Rewrite o Reescritura de URL
Comment o Comentarios
Custom field o Campos Personalizados
Hidden Items o Elementos Ocultos

Desactivar los siguientes plugins:

GD porque consume mucha memoria (salvo que sea estrictamente necesario que siga activado).
Square thumbs o Miniaturas Cuadradas

Comprobar que está instalado el plugins Migration o Migración

Ahora crearemos un álbum de prueba en el Gallery2 y subiremos un par de fotos para ver que funciona correctamente.

Migrando... Dios nos coja confesados :-)

Es importante que todos los álbumes del Xoopsgallery 1 contengan el archivo album.dat. Si algún directorio no la tiene, entonces nos saldrá un error. Para subsanarlo, simplemente copiamos el album.dat de otro álbum al que no lo tiene y listo :-) (probar con varios álbumes por experiencia).

Bien, ya nos podemos meter manos a la obra y para ello vamos al Gallery2 como administrador y entramos en el menú Administración del sitio --> Importar --> Gallery 1

Se nos solicita la ruta del directorio en el que se encuentran los álbumes del Xoopsgallery v1, en nuestro caso:

/var/www/galpon.org/xoops/modules/xoopsgallery/cache/albums/

Si todo ha ido bien, se nos mostrarán los álbumes disponibles para la migración. Podemos ir seleccionando un par de ellos para ir viendo que todo es correcto.

Una vez migrados, se nos mostrará la información de la reescritura de URL (URL Rewrite):

Redirección de URL (por comprobar)

Para habilitar la redirección de URL's bajo el servidor web Apache:

  1. Asegúrate de que el módulo de Apache mod_rewrite esté habilitado.
  2. Edita o crea un archivo llamado .htaccess en el directorio de tu Gallery1 y añade el texto mostrado a continuación al archivo. Elimina las reglas de reescritura de G1 del fichero existente. Las redirecciones funcionarán también en tu directorio de Gallery2 si G2 está instalado en la ruta donde estaba G1. Sin embargo si también utilizas el módulo de reescritura de URL de G2 entonces activa la regla de redirección de G1 en dicho módulo en vez de usar el bloque mostrado a continuación.
  3. Añade el mismo bloque .htaccess en los directorios de los álbumes de Gallery1 si también quieres redirigir los enlaces a los ficheros de imagen y a los directorios de los álbumes. Nota que estas redirecciones no serán activadas hasta que las imágenes de G1 no se muevan o eliminen realmente. Omite la línea !-f mostrada a continuación para redirigir de todos modos.
  4. Si G2 está instalado en la ruta donde estaba G1, necesitarás antes eliminar el archivo de G1 "gallery_remote2.php" para que puedas usar Gallery Remote para subir imágenes a G2.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !gallery_remote2.php
RewriteRule (.*)$ /gallery2/main.php?g2_controller=migrate.Redirect&g2_path=$1 [QSA]
</IfModule>

Integración del Gallery2 dentro de Drupal

Ahora seguiremos los pasos del wiki:

http://codex.gallery2.org/Gallery2:How_to_Embed_Gallery2_in_Drupal