Migración de Drupal 5 a la versión 6

Introducción.

Después de utilizar la versión 5 de Drupal por un par de años he decidido que es hora de utilizar la nueva versión; estando relativamente próximos a la versión 7, la estabilidad y disponibilidad de módulos de la versión 6 debe ser suficiente.  Para probar la nueva versión inicié un ejercicio de migración un tanto extraño, quise copiar de la base de datos únicamente las tablas y los registros que fueran necesarios para la instalación fresca.  Al respecto encontré alguna poca información útil pero no lo suficientemente amplia y al incluírse también a los Grupos Orgánicos todos empezó a fallar.

Una segunda aproximación, un tanto mas estándar, fue la de realizar una copia de un sitio versión 5, reemplazar los archivos con la versión 6 y utilizar las facilidades de actualización de la nueva versión.  Con este método no puedo estar seguro de que la base de datos termine con únicamente lo necesario pero es relativamente mas fácil de implementar.

Hasta ahora considero que el producto final de la migración ha sido exitoso aunque no he realizado pruebas exhaustivas, sin embargo hay algo para hacer notas: de todos los módulos utilizados el único inexistente para la versión 6 fue Gallery for Organic Groups lo que me deja algo por definir aún acerca de la idoneidad de su uso en el proyecto que estaba desarrollando.

Procedimiento.

– Realice una copia de seguridad de la base de datos y de los archivos del sitio basado en Drupal 5.

En mi caso, la experimentación la realicé sobre una copia del sitio que establecí a partir de la copia de seguridad.

– Inicie sesión con el usuario administrador (cuyo ID = 1).

– Si la dirección es pública, es recomendable poner el sitio en modo fuera de línea (offline).

– Actualizar Drupal y sus módulos a la última versión disponible.  Ver procedimiento estándar.

– Tome nota de cuales son los módulos que se encuentran instalados y cuales se encuentran activos.

– Remueva los módulos no deseados, tanto desactivándolos como removiendo sus archivos de sites/all/modules o sites/default/modules según sea el caso.

– Desactive los módulos de terceros, es decir, los que no sean de Core.  Verifique especialmente el desactivar el módulo de Update Status.

– Cambie el tema activo a uno incluído en la distribución de Drupal como por ejemplo, Garland.

– Descargue la última distribución disponible de Drupal y de la traducción al español siguiendo estos pasos.

$ mv v2 v2.old
$ wget http://ftp.drupal.org/files/projects/drupal-6.12.tar.gz
$ tar zxvf drupal-6.12.tar.gz
$ mv drupal-6.12 v2

En el experimento realizado el directorio con la versión 5 de Drupal es site/ mientras que directorio objetivo, donde se instalará el nuevo portal con la versión 6 será v2/.  De igual manera, la versión de Drupal disponible en el momento era la 6.12, sin embargo se deberá utilizar la última disponible en el sitio web.

– Descargue la última versión disponible para el paquete de idiomas en español del sitio: http://drupal.org/project/translations?text=spanish.

$ cd v2
$ wget http://ftp.drupal.org/files/projects/es-6.x-1.3.tar.gz
$ tar zxvf es-6.x-1.3.tar.gz
$ rm es-6.x-1.3.tar.gz

– Establezca el archivo base de la configuración.

$ cp ./sites/default/default.settings.php ./sites/default/settings.php
$ chmod 777 ./sites/default/settings.php

– Acceda al sitio web en instalación para iniciar la configuración del nuevo sitio a través de la siguiente dirección: http://www.servidor.com/v2.

Choose language = Spanish (Español)

– Establezca la configuración de la base de datos.

Nombre de la base de datos: <DATABASE NAME>
Usuario de la base de datos: <DATABASE USERNAME>
Contraseña de la base de datos: <DATABASE PASSWORD>
Servidor de la base de datos: <DATABASE HOST>
Prefijo de las tablas: <DATABASE TABLE PREFIX>

– En este punto se deben generar muchos errores de la base de datos debido a que la estructura de las tablas corresponde a la versión anterior, por este motivo se debe realizar el siguiente proceso tantas veces como sea necesario hasta que ya no se generen errores.

Para actualizar la base de datos visitar la siguiente ubicación: http://www.servidor.com/v2/update.php.

– Active desde http://www.servidor.com/v2/?q=admin/build/modules los módulos de Core requeridos.  En caso eran: Comment, Contact, Database logging, Forum, Help, Locale, Menu, PHP Filter, Profile, Search, Statistics, Taxonomy, Update Status y Upload.

– Copie los archivos del sitio.

$ cp -rf ../site/files/* ./files

– Cree el directorio para el almacenamiento de los módulos de terceros.

$ cd sites/all
$ mkdir modules
$ cd modules

– Instale los módulos de terceros que considere convenientes.

Cuando se instalen módulos para la versión 6 que estaban presentes en el portal con la versión 5 es conveniente realizar la actualización de base de datos en la siguiente ubicación: http://www.servidor.com/v2/update.php.  Muy probablemente sea posible agrupar la instalación de varios módulos y realizar una única o pocas actualizaciones de la base de datos, sin embargo yo prefiero hacerlo uno a uno para verificar que no existan problemas específicos.

En mi caso particular se instalaron los siguientes módulos.

Vistas (http://drupal.org/project/views).

$ wget http://ftp.drupal.org/files/projects/views-6.x-2.6.tar.gz
$ tar zxvf views-6.x-2.6.tar.gz
$ rm views-6.x-2.6.tar.gz

Activar los módulos Views, Views Exporter y Views UI, y realizar la actualización de la base de datos.

Grupos orgánicos (http://drupal.org/project/og).

$ wget http://ftp.drupal.org/files/projects/og-6.x-1.3.tar.gz
$ tar zxvf og-6.x-1.3.tar.gz
$ rm og-6.x-1.3.tar.gz

Activar los módulos Organic Groups, Organic Groups Access Control y Organic Groups Views Integration, y realizar la actualización de la base de datos.

Integración con Piwik (http://drupal.org/project/piwik).

$ wget http://ftp.drupal.org/files/projects/piwik-6.x-1.1.tar.gz
$ tar zxvf piwik-6.x-1.1.tar.gz
$ rm piwik-6.x-1.1.tar.gz

Activar los módulos Piwik web analytics y piwik – reports, y realizar la actualización de la base de datos.

Mapa del sitio XML (http://drupal.org/project/xmlsitemap).

$ wget http://ftp.drupal.org/files/projects/xmlsitemap-6.x-1.0-beta5.tar.gz
$ tar zxvf xmlsitemap-6.x-1.0-beta5.tar.gz
$ rm xmlsitemap-6.x-1.0-beta5.tar.gz

Activar los módulos XML Sitemap, XML Sitemap engines y XML Sitemap node, y realizar la actualización de la base de datos.

Web File Manager (http://drupal.org/project/webfm).

$ wget http://ftp.drupal.org/files/projects/webfm-6.x-2.10-rc4.tar.gz
$ tar zxvf webfm-6.x-2.10-rc4.tar.gz
$ rm webfm-6.x-2.10-rc4.tar.gz

Activar los módulos Web File Manager, WebFM Image y WebFM Popup, y realizar la actualización de la base de datos.

En mis sitios he notado que este módulo falla para encontrar las imágenes cuando este se instala en sites/all/modules (como se debería hacer) en lugar de modules (como no se debería hacer).  Este problema se soluciona creando un enlace para este módulo.

$ ln -s <RUTA ABSOLUTA>/v2/sites/all/modules/webfm <RUTA ABSOLUTA>/v2/modules/webfm

Poormans Cron (http://drupal.org/project/poormanscron).

$ wget http://ftp.drupal.org/files/projects/poormanscron-6.x-1.0.tar.gz
$ tar zxvf poormanscron-6.x-1.0.tar.gz
$ rm poormanscron-6.x-1.0.tar.gz

Activar el módulo Poormanscron y realizar la actualización de la base de datos.

Mapa del sitio (http://drupal.org/project/site_map).

$ wget http://ftp.drupal.org/files/projects/site_map-6.x-1.0.tar.gz
$ tar zxvf site_map-6.x-1.0.tar.gz
$ rm site_map-6.x-1.0.tar.gz

Activar el módulo Site map y realizar la actualización de la base de datos.

Integración con Google Analytics (http://drupal.org/project/google_analytics).

$ wget http://ftp.drupal.org/files/projects/google_analytics-6.x-2.2.tar.gz
$ tar zxvf google_analytics-6.x-2.2.tar.gz
$ rm google_analytics-6.x-2.2.tar.gz

Activar el módulo Google Analytics y realizar la actualización de la base de datos.

Auto Logout (http://drupal.org/project/autologout).

$ wget http://ftp.drupal.org/files/projects/autologout-6.x-1.5.tar.gz
$ tar zxvf autologout-6.x-1.5.tar.gz
$ rm autologout-6.x-1.5.tar.gz

Activar el módulo Autologout y realizar la actualización de la base de datos.

Integración con TinyMCE.

Instalación de TinyMCE (http://tinymce.moxiecode.com/download.php).

$ mkdir -p v2/sites/all/libraries/tinymce
$ cd v2/sites/all/libraries/tinymce
$ wget http://prdownloads.sourceforge.net/tinymce/tinymce_3_2_4_1.zip?download
$ unzip tinymce_3_2_4_1.zip
$ rm tinymce_3_2_4_1.zip

Instalación del paquete de idiomas de TinyMCE (http://tinymce.moxiecode.com/download_i18n.php).

Descargar tinymce_lang_pack.zip con el idioma requerido.

$ cd jscripts/tiny_mce/
$ unzip ../../tinymce_lang_pack.zip
$ cd ../..
$ rm tinymce_lang_pack.zip

API del módulo WYSIWYG (http://drupal.org/project/wysiwyg).

$ wget http://ftp.drupal.org/files/projects/wysiwyg-6.x-2.0.tar.gz
$ tar zxvf wysiwyg-6.x-2.0.tar.gz
$ rm wysiwyg-6.x-2.0.tar.gz

Activar el módulo Wysiwyg.

Configuración del módulo Wysiwyg: Asociación con los formatos de entrada.

Visite http://www.servidor.com/v2/?q=admin/settings/wysiwyg.

Filtered HTML: TinyMCE
PHP code: No editor
Full HTML: TinyMCE

$ cd <RUTA ABSOLUTA>/v2/sites/all/modules

Captcha (http://drupal.org/project/captcha).

$ wget http://ftp.drupal.org/files/projects/captcha-6.x-1.0-rc2.tar.gz
$ tar zxvf captcha-6.x-1.0-rc2.tar.gz
$ rm captcha-6.x-1.0-rc2.tar.gz

Activar los módulos Captcha, Image Captcha, y realizar la actualización de la base de datos.

Realizar la configuración del módulo en http://www.servidor.com/v2/?q=admin/user/captcha.

Nombre real (http://drupal.org/project/realname).

$ wget http://ftp.drupal.org/files/projects/realname-6.x-1.2.tar.gz
$ tar zxvf realname-6.x-1.2.tar.gz
$ rm realname-6.x-1.2.tar.gz

Activar el módulo RealName.

Módulo de soporte para imágenes (http://drupal.org/project/image).

$ wget http://ftp.drupal.org/files/projects/image-6.x-1.0-alpha4.tar.gz
$ tar zxvf image-6.x-1.0-alpha4.tar.gz
$ rm image-6.x-1.0-alpha4.tar.gz

Activar el módulo Image.

Image Assistant for Wysiwyg  (http://drupal.org/project/img_assist).

$ wget http://ftp.drupal.org/files/projects/img_assist-6.x-2.0-alpha3.tar.gz
$ tar zxvf img_assist-6.x-2.0-alpha3.tar.gz
$ rm img_assist-6.x-2.0-alpha3.tar.gz

Activar el módulo Image assist.

Modificar el filtro de HTML restringido para permitir el uso de etiquetas de imagen.

Visitar http://www.servidor.com/v2/?q=admin/settings/filters.

Filtered HTML > Configurar
Configurar
Etiquetas HTML Permitidas += <span> <img>
Guardar la configuración

Configurar los permisos de acceso al módulo en http://www.servidor.com/v2/?q=admin/user/permissions.

IMCE for TinyMCE (http://drupal.org/project/imce).

$ wget http://ftp.drupal.org/files/projects/imce-6.x-1.2.tar.gz
$ tar zxvf imce-6.x-1.2.tar.gz
$ rm imce-6.x-1.2.tar.gz

Activar el módulo IMCE y realizar la actualización de la base de datos.

Puente IMCE para Wysiwyg (http://drupal.org/project/imce_wysiwyg).

$ wget http://ftp.drupal.org/files/projects/imce_wysiwyg-6.x-1.0.tar.gz
$ tar zxvf imce_wysiwyg-6.x-1.0.tar.gz
$ rm imce_wysiwyg-6.x-1.0.tar.gz

Activar el módulo IMCE Wysiwyg API bridge.

Enlaces web (http://drupal.org/project/weblinks).

$ wget http://ftp.drupal.org/files/projects/weblinks-6.x-2.0.tar.gz
$ tar zxvf weblinks-6.x-2.0.tar.gz
$ rm weblinks-6.x-2.0.tar.gz

Activar los módulos Web Links y Web Links Checker, y realizar la actualización de la base de datos.

Content Construction Kit (http://drupal.org/project/cck).

$ wget http://ftp.drupal.org/files/projects/cck-6.x-2.4.tar.gz
$ tar zxvf cck-6.x-2.4.tar.gz
$ rm cck-6.x-2.4.tar.gz

Activar los módulos Content y Text, y realizar la actualización de la base de datos.

Javascript tools (http://drupal.org/project/jstools).

$ wget http://ftp.drupal.org/files/projects/jstools-6.x-1.0.tar.gz
$ tar zxvf jstools-6.x-1.0.tar.gz
$ rm jstools-6.x-1.0.tar.gz

Activar el módulo Javascript tools y realizar la actualización de la base de datos.

Menúes activos – depende de jstools (http://drupal.org/project/activemenu).

$ wget http://ftp.drupal.org/files/projects/activemenu-6.x-1.x-dev.tar.gz
$ tar zxvf activemenu-6.x-1.x-dev.tar.gz
$ rm activemenu-6.x-1.x-dev.tar.gz

Activar el módulo Active menu y realizar la actualización de la base de datos.

Módulo de soporte para eventos (http://drupal.org/project/event).

$ wget http://ftp.drupal.org/files/projects/event-6.x-2.x-dev.tar.gz
$ tar zxvf event-6.x-2.x-dev.tar.gz
$ rm event-6.x-2.x-dev.tar.gz

Activar el módulo Event y realizar la actualización de la base de datos.

Organic Groups Calendar (http://drupal.org/project/og_calendar).

$ wget http://ftp.drupal.org/files/projects/og_calendar-6.x-1.0.tar.gz
$ tar zxvf og_calendar-6.x-1.0.tar.gz
$ rm og_calendar-6.x-1.0.tar.gz

Activar el módulo OG Calendar y realizar la actualización de la base de datos.

Organic Groups User Roles (http://drupal.org/project/og_user_roles).

$ wget http://ftp.drupal.org/files/projects/og_user_roles-6.x-1.5.tar.gz
$ tar zxvf og_user_roles-6.x-1.5.tar.gz
$ rm og_user_roles-6.x-1.5.tar.gz

Activar el módulo OG User Roles y realizar la actualización de la base de datos.

Realice la reconstrucción de los permisos en la nueva versión de Drupal visitando el siguiente enlace: http://www.servidor.com/v2/?q=admin/content/node-settings/rebuild.

One thought on “Migración de Drupal 5 a la versión 6”

Leave a Reply

Your email address will not be published. Required fields are marked *