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.