Está en la página 1de 6

Qu es drush?

Drush ( = DRUpal SHell) es una interfaz de lnea de comandos para drupal,


es decir, un lugar desde donde podemos manejar nuestro drupal usando
comandos de consola. Para los que no estn familiarizados con la consola,
simplemente dir que agiliza muchsimo el desarrollo de cualquier web, por
pequea que sea. Como ejemplo siempre uso el de instalar un mdulo. La
forma tradicional consiste en descargar el mdulo en local,
desempaquetarlo y subirlo por ftp, lo cual nos puede llevar unos 5-10
minutos. Mediante drush, podemos descargar el mdulo directamente en el
servidor mediante un comando, con lo cual el proceso queda reducido a
unos 5-10 segundos. Asumir que se est familiarizado con el uso de la
consola por ssh, de lo contrario se puede consultar esta gua

Como instalar drush en ubuntu 14.04


Para instalar drush, en un servidor (o mquina local) ubuntu 14.04, abrimos
un terminal y ejecutamos el siguiente comando:
sudoaptgetinstalldrush

Esto nos instalar drush, as como sus dependencias. una vez termine la
instalacin, podremos ejecutar:
drushversion

sto indicar la versin de drush instalada, en mi caso la 5.10.0. En el caso


de ubuntu 12.04, la versin que viene en los repositorios es la 4.x. Es
recomendable actualizar drush a la ltima versin estable (actualmente la
5.x)
Para actualizar drush a la versin ms reciente, ejecutamos el siguiente
comando:
drushselfupdate

En drush todos los comandos tienen parmetros y opciones. Los parmetros


se escriben a continuacin del nombre del comando separados por
espacios, y las opciones modifican la forma de ejecutarse el comando, y
vienen precedidas por 2 signos menos (--), como por ejemplo --version. Los
comandos los ejecutamos siempre dentro de la carpeta de la instalacin del
sitio web en cuestin. Ahora veamos algunos comandos interesantes
de drush

Descargar un mdulo con drush


Para descargar un mdulo con drush usamos el comando drush dl, que
recibe como parmetro el nombre del modulo. El nombre del modulo
normalmente es el ltimo fragmento de la url en la pgina del mdulo en
drupal.org, y tambin es el nombre que se usa en los hooks

Por ejemplo, si queremos descargar el mdulo views, cuya url


eshttps://www.drupal.org/project/views, ejecutamos en un terminal:
drushdlviews

Quisiera aclarar en este punto la diferencia en drupal que existe entre un


mdulo y un proyecto. Para drupal, un proyecto es cualquier pieza de
cdigo
descargable desde drupal.org. Es decir, puede ser un mdulo, pero tambin
puede ser un theme o una dristro. Tambin puede suceder, como en este
caso, que un mismo proyecto contenga varios mdulos. Es el caso de views,
que contiene 2 mdulos: views y views_ui, uno con la funcionalidad de
views, y otro con la interfaz administrativa. Cuando sea as, drush nos
informar en el momento de descargarlo. Solo hay que tener claro que
descargamos el proyecto, y activamos o desactivamos los mdulos. En este
caso, descargamos views, y activamos los 2 modulos que contiene: views y
views_ui. OK? Vamos a ello!

Instalar / Activar mdulos desde drush


Para activar mdulos desde drush, utilizamos comando drush en,
pasndole como parmetro el mdulo o mdulos que vamos a activar. En
nuestro caso para activar los 2 mdulos podramos hacer:
drushenviews<br/>
drushenviews_ui

...o bien directamente:


drushenviewsviews_ui

Una cosa interesante es que drush detecta automticamente las


dependencias que tienen los mdulos, y si estn presentes en nuestro
drupal, las activa directamente. Incluso en algunos casos puede
descargarlas por nosotros. Como el mdulo views_ui depende de views,
podramos instalar los 2 mdulos con el comando:
drushenviews_ui

Diferencia entre instalar y activar un mdulo en drupal


Para drupal un mdulo se instala cuando lo activamos por primera vez. SI
ms adelante lo desactivamos, y luego lo volvemos a activar, este no se
instalar de nuevo, a menos que antes lo hayamos desinstalado (por
ejemplo, desde la pestaa desinstalar de la pgina de mdulos). Cuando
drupal instala un mdulo, ejecuta las tareas y configuraciones necesarias
para que el mdulo funcione correctamente (como por ejemplo crear las
tablas necesarias en base de datos) y estos cambios no se deshacen por
desactivarlo. Para deshacer estos cambios, debemos desinstalar el mdulo,
con lo que tambin perderemos las configuraciones que hayamos
establecido en ese mdulo. En la prctica lo que sucede al instalar es que se
crean las tablas definidas en el hooh_schema y se ejecuta el hook_install. Y
cuando se desinstala se borran estas mismas tablas y se ejecuta
el hook_uninstall

Desactivar un mdulo mediante drush


Para desactivar un mdulo desde drush utilizamos el comando drush dis,
que funciona con las dependencias de una forma muy parecida a drush en.
drushdisviews

Este comando nos desactivar tanto views como views_ui

Desinstalar un mdulo mediante drush

Para desactivar un mdulo mediante drush utilizamos el comando pmuninstall, que valida tambin las dependencias, pero en este caso es ms
estricto, no permitindonos desinstalar un modulo mientras no
desinstalemos los mdulos que dependan de l
Para concluir, muchos de los comandos que hemos visto nos piden
confirmar lo que estamos haciendo. Si estamos muy seguros de lo que
estamos haciendo podemos utilizar con cualquier comando la opcin -yes -y, que son equivalentes. Con esta opcin presente, un comando
asumir como "yes", la respuesta a cualquiera de las preguntas que nos
platee. De manera que si ejecutamos:
drushenviews_uiy

Nos instalar views y views_ui sin pedir confirmacin

Descargando drupal desde drush


Lo primero que tedremos que hacer es descargar drupal en el directorio
deseado, que normalmente ser el Document Root de un virtualhost, o bien
una carpeta de nuestro apache local. Para ello podemos usar el
comando dl(pm-download) que ya vimos en el anterior artculo.
mvpublic_htmlpublic_html.olddrushdldestinationpublic_html

Donde public_html es el Document Root o carpeta principal de la web. Con


las instrucciones anteriores lo que hacemos es cambiar el nombre de la
carpeta DocumentRoot, y despues volverla a crear con los contenidos del
cms drupal. Hay que sealar que drush no nos permitir descargar drupal
en una carpeta existente, por motivos de seguridad.

Instalando drupal desde drush


Una vez desargado ya podemos pasar a instalarlo, tambin desde drush.
Para ello usamos el comando site-install o si
drushsistandarddburl=mysql://USER:PASS@localhost/BBDDNAME
sitename="Nombredelsitioweb"locale=esaccount
mail=info@example.com&nbsp;accountpass=admin

El argumento que le pasamos (standard) es el perfil de instalacin con el


que queremos realizar nuestra instalacin drupal. Es el primer paso del

proceso de instalacin cuando lo hacemos desde la interfaz grfica. La


distribucin bsica de drupal viene con 2 perfiles de
instalacin: standard y minimal, pero otras distribuciones como commerce
kickstart o open publish pueden inclur otros perfiles de instalacin.
A continuacin le pasamos una serie de opciones, todas ellas opcionales, y
que solo son algunas de entre las muchas que hay disponibles. Vamos a
explicar algunas de ellas:

db-url: Con esta opcin se indica la configuracin de la base de


datos, en un formato como el que se usaba en drupal 6, pero que el
ejemplo se explica a s mismo. Si no se utiliza, por defecto el
comando trata de utilizar los datos almacenados en el archivo
sites/default/settings.php

site-name: El nombre del sitio web.

locale: Si queremos instalar drupal en otro idioma bastar con usar


este parmetro

account-mail: el correo electrnico de la cuenta del usuario


administrador principal (admin)

account-pass: la contrasea de la cuenta del usuario administrador


principal (admin)

Todos los parmetros e pueden consultar aqu


Ahora veremos como actualizar una instalacin drupal, para lo que es ms
que recomendable realizar una copia de seguridad antes de nada, para
poder dejar todo como estaba si algo falla.

Generando una copia de seguridad desde


drush
El backup lo podemos realizar con el comando archive-dump, que realiza
una copia de seguridad completa de todo el sitio web, incluyendo el cdigo,
los archivos y la base de datos:
drusharchivedumpdestination=../example.com.tar

donde la opcin destination indica la ruta del archivo donde queremos


almacenar el backup
Para restaurar el backup podemos utilizar de forma similar el
comandoarchive-restore:
drusharchiverestore../example.com.tar

Tambin puede suceder que queramos realizar un backup nicamente de


base de datos para poder restaurarlo rpidamente. Para ello tenemos el
comando sql-dump:

drushsqldump&gt;../example.com.sql

...y para restaurarlo


drushsqlcli&lt;../example.com.sql

Actualizando drupal y mdulos contribudos


Existen 2 procesos dentro de lo que es la instalacin de drupal o de los
mdulos contribudos. El primero es actualizar el cdigo, esto es, descargar
la ltima vesin del cdigo. El segundo es actualizar la base de datos, o lo
que es lo mismo, ejecutar todos los hook_update_N de los proyectos que
estamos actualizando.
Los comandos utilizados son pm-updatecode y updatedb, pero tenemos un
comando que engloba ambos: el comando pm-update up:
drushup

Tambin podemos actualizar selectivamente ciertos proyectos


drushupviews

si slo queremos actualizar el core:


drushupdrupal.

Hoy deseaba importar en mi entorno de desarrollo local, la base de


datos de un sitio que se encontraba en un servidor remoto, el servidor
de desarrollo. Existen varios metodos, desde entrar al cpanel y
phpmyadmin, utilizar el mdulo backupandmigrate o tambien utilizar
el comando drush sql-sync.
Sin embargo, existe otro camino bastante rpido donde utilizamos
Drush y el comando SCP para importar la base de datos.
Por supuesto necesitamos dos cosas que todos los verdaderos
desarrolladores Drupal utilizan a diario:
Acceso ssh al servidor de dev.
Drush instalado tanto en local como en el servidor de desarollo.
1. Ingresar desde nuestra mquina local al servidor de desarrollo
ssh yo@exemplo.com
Ingresamos al directorio donde se encuentra nuestra instalacin
Drupal
2. Hacer el dump de la base de datos con Drush
drush mysql-dump > midb.sql
Este comando Drush exportar todo el contenido de nuestra base de
datos en el mismo directorio en el archivo midb.sql
3. Exportar la base de datos desde el servidor de desarrollo haca la
mquina local
scp yo@misitio.com:midb.sql midb.sql
El scp (Secure CoPy) es un programa que reemplaza al FTP, y a
diferencia de ste, es seguro. Es decir la informacin de usuario y
claves, asi como el contenido de los archivos transferidos son
encriptados antes de ser transferidos para evitar que puedan ser
espiados en su paso por la red.

4. Importar la base de datos en nuestra instalacin local de Drupal


Una vez en el directorio de nuestra instalacin Drupal en local, con
estos dos comandos podremos importar la nueva base de datos.
drush sql-drop drush sql-cli < midb.sql
El rimer comando elimina todas las tablas de la base de datos
asociada a nuestra instalacin local de Drupal. La segunda importa
las tablas en nuestra instalacin desde el archivo midb.sql. OJO no se
olviden el < despes de drush sql-cli.
Si no tienen drush instalado en el servidor remoto (eso ocurre
todava? No se...) pueden utilizar el comando Mysql puro como sigue:
mysqldump -u mi_usuario_mysql -p nombre_de_la_db_mysql >
midb.sql
En un prximo artculo, si estn interesados, les contar como hacer
lo mismo pero directamente con drush sql-syncls