2010-10-28 7 views

Respuesta

22

Yep. drush vset site_offline 1 lo configurará fuera de línea, luego drush vdel site_offline lo traerá de vuelta.

Como alternativa, puede consultar mi Maintenance File module en drupal.org, que configurará su sitio sin conexión si encuentra un archivo específico en el directorio.

4

La solución de theunraveler es la mejor si está ejecutando un solo sitio. Estábamos ejecutando una instalación drupal multisitio muy grande, con cientos de sitios. Ponerlos fuera de línea de esa manera a través de drush toma varios segundos por sitio, lo cual era inaceptable. La forma más rápida de desconectar un sitio es romper la conexión de DB, por ejemplo, cambiar el nombre del archivo settings.php. A continuación, simplemente asigne un tema predeterminado que tenga una plantilla básica que no requiera el archivo db, que diga "Sitio sin conexión" o algo así. Después de la actualización, puede reparar el archivo settings.php y estará listo.

+0

Eso lleva el mismo tiempo. Para establecer un tema predeterminado para cada sitio, debe realizar un cambio en la base de datos. El comando drush anterior también está haciendo un cambio en la base de datos: es lo mismo que UPDATE {variables} SET value = 1 WHERE name = 'site_offline'. Por lo tanto, el problema no es con drush o incluso con este método de configuración de sitios fuera de línea, que obviamente es el más ideal. – theunraveler

+0

@theunraveler: Creo que el punto es que solo necesitas hacer un cambio una vez que hayas hecho la configuración. Aunque no es un método que usaría yo mismo. – googletorp

+0

@theunraveler: ese no es el caso. en una configuración de varios sitios, puede establecer un tema predeterminado en la instalación base para que, si no puede acceder a uno de los sitios "de varias páginas", este tema base se ajuste de manera predeterminada. créeme, pasé mucho tiempo investigando esto, incluyendo hacer que el DB cambie directamente. eso no es suficiente porque la caché no se vacía. como mencioné anteriormente, no lo recomiendo a menos que tenga muchos sitios y el rendimiento es importante. pero con esta técnica puedes sacar 500 sitios fuera de línea en un par de segundos, versus 5-7 segundos por sitio a través de drush – Nader

14

Sólo en caso de que alguien tiene que hacer esto con Drupal 7, los comandos son:

drush vset maintenance_mode 1 --yes # Take site offline 
drush vset maintenance_mode 0 --yes # Put site back online 

También ayuda a añadir un poco de drush cc all después de cada uno de esos comandos para garantizar que el cambio parece instantánea a los usuarios.

+0

Esta sintaxis también funciona con drupal 6 en el drush actual, por lo que probablemente se prefiera. – ErichBSchulz

0

Con un alias de sitio en D7:

drush @site_alias -y vset maintenance_mode 1 # Take site offline 
drush @site_alias -y vset maintenance_mode 0 # Take site online 
0

Es muy fácil, de hecho, sólo tiene que establecer la variable de modo de mantenimiento a 1 (0 a restaurar el valor predeterminado):

drush vset maintenance_mode 1 
0

Drupal 6

drush vset site_offline 1 

Drupal 7

drush vset maintenance_mode 1 
Cuestiones relacionadas