Acceder al contenido principal

Blog

Volver a Blog

Usando alias de drush en Drupal

08 Abr 019
DrupalCamp Spain 2019
Avatar José Carlos Lucio

Drupal

En múltiples ocasiones necesitamos traernos de forma fácil la base de datos de stage/pro e importarla en local  u otro entorno. Como es lógico podemos entrar cada vez al server remoto descargarla y posteriormente importarla en local (tarea que se hace muy pesada). Para simplificar esto podemos hacer uso de los alias de drush y el comando drush sql-sync

  • Configuramos el fichero que encontraremos en /drush/sites/self.site.yml (Si hemos usado create-project) donde añadimos los datos de conexión de ssh:
    • host: host del site, por si hay dudas es lo que pondríamos detrás de la @ en una conexión ssh user@host, básicamente la dirección del servidor.
    • user: Usuario ssh del sitio, por si hay dudas es lo que pondríamos delante de la @ en una conexión ssh user@host. Usuario con el que accedemos al servidor.
    • root: Ruta hasta el directorio donde se encuentra nuestro drupal en el sitio remoto.
    • uri: Url del sitio remoto.

      Es muy importante que a nivel de servidor tengamos el PATH añadido a /etc/enviroment , para ello únicamente tenemos que hacer un edit de dicho fichero y añadir PATH="....." donde los puntos sería todo lo que nos devuelva un echo $PATH en la terminal del servidor. Esto da solución a un problema muy común que es que cuando ejecutamos de forma remota el comando nos diga que "drush no existe".
       
  • En local deberemos copiar nuestra ssh key id al servidor remoto del que hemos realizado el alias, en nuestro caso el comando sería ...
     

    ssh-copy-id -i ~/.ssh/id_rsa.pub user@host


    ... siempre y cuando nuestra clave ssh pública esté en ese directorio (si estuviera en otro pues la ruta sería a donde esté nuestro fichero).
     

Una vez realizados estos pasos ya podremos ejecutar comandos de drush en el servidor remoto sin necesidad de entrar allí. Por ejemplo:

  • drush @self.prod cr (Estaríamos ejecutando un limpiado de cachés en el entorno de producción).


Otro comando muy útil y como comentamos al principio sería:

  • drush sql-sync @self.prod @self comando con el cual le estamos diciendo que nos traiga la base de datos que tenemos configurada en el alias prod (traenos un dump de producción) e importarla en local.

IMPORTANTE: desde donde lanzamos el comando sería el @self por defecto. Es muy importante el orden ya que, por ejemplo en el comando anterior, sí lo ponemos al revés subiremos nuestro local a prod.

Comentarios

Añadir nuevo comentario