/ desarrollo

Drupal 6 – Actualizando Core y componentes

Hoy he tenido que actualizar Drupal dado que me canse de ver los mensajes que debía actualizar el sistema. Voy a intentar comentar la experiencia sobre el proceso de actualización y comentar un poco los pasos.

No voy a realizar un manual de instalación y/o actualización de Drupal, simplemente voy a comentar algunos pasos generales y mi experiencia con este proceso.

Mi background con CMS

Hace un tiempo que trabajo con sistemas CMS, en un principio cree uno propio, y satisfacía muy bien las necesidades de ese momento, pero luego ,con el advenimiento de PHP 5, algunos módulos quedaron desactualizados y debía trabajar demasiado para migrarlos, entonces me decidí por comenzar a usar sistemas CMS ya pre-armados. Igualmente debo reconocer que el CMS que he desarrollado esta en funcionamiento (generó las páginas en un servidor PHP4 y luego las subo al sitio productivo que trabaja con PHP 5).

Luego de romperme la cabeza con el desarrollo de mi propio sistema CMS, comencé a probar Joomla (debo reconocer que nunca fui fanático de este CMS, pero me saco del paso). Joomla es un muy buen CMS, muy fácil de usar, y realmente me sorprendió lo sencillo que le resulta el uso de este CMS al usuario final (porque la idea no es que una persona experta actualice el contenido, sino la persona que genera contenidos). Realmente Joomla, es muy bueno en su manejo de la interfaz, y la facilidad de uso. La desventaja es principalmente para el desarrollador, porque el código me parece un poco sucio, y se hace un poco difícil a veces crear componentes (aunque debo ser sincero que nunca le dedique demasiado tiempo, quizás por una cuestión de “piel”).

Al momento de encarar la nueva actualización del sitio web, decidí volver a darle una oportunidad a Drupal, ya que tantas personas decían que era tan bueno, dije, vamos a probarlo. En un principio me pareció un poco complicado, porque tuve que aprender como manejaba las cosas, que era nodo, un book, y como manejaba las cosas. Luego de haber tenido que probar bastante, y leer también un poco (debería haber leído más para tener que probar menos), comencé a desarrollar primero la interfaz, luego algunas modificaciones y ahora estoy desarrollando un módulo básico. He logrado que el CMS quede bastante sencillo como para su actualización, aún no ha pasado la prueba de fuego, que es entregárselo a un usuario que sea el responsable de realizar la actualización del sitio, pero creo que la pasará fácilmente.

Hoy en día sigo con Drupal, me parece muy bueno luego de pasar esa curva de aprendizaje inicial. Es muy potente, y se pueden desarrollar los módulos que querramos (me gustaría que la interfaz estuviera un poco más separada de el código, pero por ahora me tengo que conformar con esa forma de trabajo).

Requerimientos para este artículo

Si bien no es un tutorial para actualizar Drupal, si me parece que es necesario que la persona que continúa leyendo este post, tenga los siguientes conocimientos para poder seguir más fácilmente el post:

  • Tener conocimientos básicos de administración de Drupal.
  • Conocer como descomprimir archivos y copiar.
  • Editar archivos PHP.

¿Como fueron los pasos?

Hacía unos días que Drupal me informaba que debía realizar la actualización de varios componentes instalados, y también de Drupal core (el corazón/núcleo de Drupal). Cansado de que aparezcan dichos mensajes, decidí realizar la actualización."

1. (Opcional) Modificar el archivo “index.php” que se encuentra en la carpeta raíz de Drupal. Este paso no es realmente necesario, pero yo lo tuve que realizar porque el script tardaba un poco más de 60 segundos que es el valor pre-establecido para la ejecución de scripts. La instrucción agregada “set_time_limit(360);” permite que el script tarde en ejecutar hasta 360 segundos.
 
NOTA: el tiempo de ejecución de los scripts de PHP se deberían modificar desde el archivo de configuración de PHP o de forma general, pero yo decidí realizar la modificación directamente sobre el archivo index.php, porque es algo temporal y quería que al realizar la actualización se re-establecieran los valores predefinidos.

actDrupal_p0_1
2. (Opcional) Modificar el archivo “update.php” que se encuentra en el directorio raíz de Drupal.

actDrupal_p0_2
3. Abrir el navegador y navegar a la página “http://<url base del sitio drupal>/admin/reports/updates”
4. En esta página nos aparecen todos los módulos y componentes que disponen de actualización. En rojo aparecen todos aquellos que tienen actualizaciones importantes y de seguridad, mientras que en color amarillo, aquellos que disponen de actualizaciones menos importantes o mejoras.

Yo decidí actualizar todos los componentes (tantos las mejoras como las actualizaciones importantes), para ello presione sobre el enlace “Descargar” de cada uno de los componentes que disponen de actualizaciones.

Una vez descargado cada componente, descomprimí cada archivo descargado (.gz), y luego reemplace los archivos de Drupal por el contenido de los archivos comprimidos. Los componentes/módulos se encuentran en la carpeta “modules”, mientras que la actualización del Core/corazón de Drupal se realiza en la carpeta principal de Drupal.
Ejemplo:
+ Con el contenido de la actualización de Drupal, reemplace el contenido de la carpeta principal de Drupal.
+ Con el contenido de la actualización de Views, reemplace el contenido de la carpeta modules/views dentro de Drupal.

actDrupal
5 Cuando recargué la página “http://<url/ base del sitio drupal>/admin/reports/updates” el sitio Drupal me indicaba que debía actualizar la base de datos. Para ello solo tenía que comenzar el proceso presionando sobre el enlace “guión de actualización de la base de datos”

actDrupalDB
6 Drupal nos informa los pasos que debemos realizar para asegurarnos que no perdamos datos, principalmente, realizar un backup de nuestros datos (base de datos, y scripts dentro de la carpeta modules).
Cuando realizamos todos los pasos de resguardo (que yo no los realicé porque era un sitio de desarrollo, y ya tenía un backup de la información que me importaba), presionamos el botón “Continue”

actDrupalDB_p1
7 En esta pantalla podemos seleccionar que versiones deseamos instalar, Drupal automáticamente selecciona las últimas versiones instaladas como predeterminadas. En caso que deseemos modificar la versión a instalar (no lo recomiendo), se debe presionar sobre el enlace “Select versions”

actDrupalDB_p2
8 Si hemos presionado sobre el enlace “Select versions” nos aparece un listado de cada uno de los módulos instalados con sus versiones, cuando existe una actualización disponible para el módulo podemos ver que automáticamente es seleccionada. Ejemplo: me detectó automáticamente que la última versión instalada del core (system module) es la 6051.
Si queremos modificar la versión hacía la cual actualizar, solo debemos seleccionar otra opción del listado.
Cuando finalizamos de realizar las modificaciones que deseamos presionamos sobre el botón “Update” para iniciar realmente el proceso de actualización.

actDrupalDB_p2_2
9 Drupal nos indica que se están comenzando a realizar los updates. Solo debemos esperar.

actDrupalDB_p3
10 Ya finalizando el proceso de actualización.

actDrupalDB_p4
11 Ahora sí, ya esta nuestro sitio Drupal actualizado a la última versión, listo para utilizarse.

actDrupalDB_p5

Conclusión

El proceso de actualización del sitio de Drupal no es difícil, pero si un poco tedioso/engorroso. Me gustaría más que los updates fueran más automáticos, es decir que se descargarán directamente al sitio Drupal, sin tener que descargarlos y luego tener que cargarlos manualmente en el sitio (además de realizarse todas las actualizaciones automáticamente de la base de datos, sin necesidad de tener que hacer todo el proceso manualmente).

Creo que aún falta un poco de usabilidad en general en el proyecto, con esto no quiero decir que sea malo, ni mucho menos, sino que esta más orientado a un programador o persona de sistemas, más que a un usuario final.

Hoy en día no me gustaría pensar en que voy a tener que realizar este proceso de forma habitual, pero me tendré que acostumbrar. Es lo que uno tiene que pagar por tener un sistema flexible que se adapta a las necesidades de cada uno.

Espero haber sido de ayuda para alguno que este realizando una actualización de Drupal, no se sí como guía, pero si como experiencia y los pasos generales que el proceso lleva.