Artículos relacionados con la utilidad Drush

Drupalcamp spain 2012: Inscripción abierta y votación de sesiones

Como cada otoño tenemos aquí el evento más relevante sobre Drupal que se organiza en España, la Drupalcamp Spain 2012, que este año se celebrará en las instalaciones de la Escuela Universitaria de Informática de la UPM, en Madrid los días 20 y 21 de Octubre.

El grupo local de Madrid está encargándose de la organización con el soporte técnico y fiscal de la Asociación Española de Drupal, que hace posible que se celebre la Drupalcamp cada año, además de otros voluntarios de todo el país. Todavía es posible colaborar, contacta con la organización para más detalles.

Será un evento de dos días con charlas especializadas, talleres, sprints, networking y por supuesto, eventos lúdicos para disfrutar de los conocimientos y la compañía de la comunidad drupalera de toda España.

Se ha abierto la inscripción, así que no esperes más y asegura tu puesto en el  evento drupalero del año por solo 35€.

Ahora mismo está abierto el proceso de votación de sesiones, puedes votar tus favoritas visitando la página de sesiones. Aquí van unas cuantas recomendaciones:

Y por supuesto, no puedo finalizar sin recomendar las dos sesiones en las que voy a tener participación activa:

¿Tu cron se quedó atascado? Drush al rescate

En ocasiones pasan cosas con nuestras instalaciones de Drupal y el cron se queda bloqueado produciendo mensajes como estos:

"Attempting to re-run cron while it is already running." o "Se ha intentado ejecutar cron cuando ya se está ejecutando."

"Cron has been running for more than an hour and is most likely stuck." o "Cron lleva ejecutándose más de una hora y parece estar colgado."

Desde Drupal 6.16 hay una comprobación extra de estilo semáforo para asegurar que los procesos de cron no se solapan, así que si tenemos el problema del "cron bloqueado", podemos resolverlo con dos sencillos comandos de Drush.

drush vset cron_semaphore FALSE

drush vset cron_last 0

De esta manera forzamos que Drupal vuelva a ejecutar el cron y podemos evaluar el problema subyacente por el que no está terminando.

Para ejecutar el cron desde drush, nada más fácil:

drush cron

Estas operaciones también se pueden hacer sin drush, haciendo un UPDATE o un DELETE en la tabla variable sobre los registros cron_semaphore y cron_last pero con drush todo es más divertido.

Creando parches en Drupal

En ocasiones es necesario extender o corregir el funcionamiento de alguno de los módulos de terceros que completan una instalación del core de drupal, si nuestro código es suficientemente genérico como para incluirlo en el módulo original, podemos enviar un parche a la cola de issues.

Basándome en este post de la gente de NodeOne, y en la ayuda de jonhattan y manuee os dejo dos alternativas para generar parches en drupal, voy a usar el módulo views en su versión 3 como ejemplo, substituid nombre y versión por el que estéis parcheando.

Usando drush + cvs "de toda la vida"

  • drush dl views-6.x-3.x --package-handler=cvs
  • Integramos nuestros cambios en la versión de desarrollo del módulo.
  • cvs diff -u > nombre_del_parche.patch

Explicación: El comando drush nos descarga la última versión de desarrollo del módulo que estamos parcheando (si quereis poner otra, simplemente cambiad los numeros por los que salen en la página del proyecto). La opción --package-handler=cvs nos permite descargar la última versión de desarrollo que haya en el CVS de Drupal.

Con cvs diff generamos las diferencias entre lo que hemos integrado y el módulo en su última versión.

Usando drush + git porque nos sentimos más modernos

  • drush dl views-6.x-3.x --package-handler=cvs
  • cd views
  • git init
  • git add *
  • git commit -m "Initial version"
  • Integramos nuestros cambios en la versión de desarrollo
  • git diff > nombre_del_parche.patch

Explicación: git nos permite crear repositorios locales al vuelo, eso es lo que hacemos con git init, con los comandos add y commit consolidamos en nuestro repositorio local el proyecto que nos descargamos con drush. Al integrar nuestros cambios, git diff es capaz de diferenciar nuestros cambios de la versión original y generar el parche.

Podéis encontrar más detalles sobre el concepto de parches en la sesión "Parches y bugs, de que va todo eso?" que se realizó en la drupalcamp Spain 2010.