drush

Artículos relacionados con la utilidad Drush

¿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.

categorías: 
drupal: 

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.

categorías: 
 
 
 

Creative Commons License
Excepto donde se indique lo contrario, el contenido de este sitio está sujeto a una licencia de Creative Commons.