El otro día me enseñaron la consola de Ruby en Redmine. No es más que poder lanzar comandos desde consola para poder realizar operaciones de Redmine de manera más rápida. Ejecutar cualquier operación desde la web de Redmine consume muchos recursos, y algunas veces interesa realizar ciertas operaciones desde la consola para poder agilizar el proceso.
Este sería el ejemplo si estamos en Windows.
Para acceder a la consola tenemos que tener establecida la variable de entorno:
set RAILS_ENV=production
Y lanzar desde el raiz de nuestro Redmine el comando:
d:xampphttpdredmine> ruby script/console
Ahora ya podríamos lanzar comandos, para por ejemplo, consultar un proyecto por ID con:
p = Project.find(1)
O saber cuántos tickets tiene con el comando:
p.issues.count
O localizar un proyecto por su identificador con el comando:
p = Project.find_by_identifier('p0001')
Con este tipo de operaciones podemos hacer una limpieza de los tickets de un proyecto dado que desde la propia interfaz tardaría muchísimo y que desde la línea de comandos tardaría casi nada.
El ejemplo sería este:
1.8.7-p374 :001 > p = Project.find(1)
1.8.7-p374 :002 > p.issues.count
(0.1ms) SELECT COUNT(*) FROM "issues" WHERE "issues"."project_id" = 1
=> 47
1.8.7-p374 :003 > p.issues.each(&:destroy)
...
1.8.7-p374 :004 > p.issues.count
(0.1ms) SELECT COUNT(*) FROM "issues" WHERE "issues"."project_id" = 1
=> 0
Este tipo de cosas puede ser muy útil para preparar scripts automatizados que realicen tareas periódicas por ejemplo.