¿Cuál es el comando que reemplaza 'drush variable-set'?


14

En Drupal 8, el comando Drush drush variable-setya no funciona.

De la lectura ( aquí ) parece que Drupal 8 tiene un nuevo sistema de "configuración" que reemplaza las antiguas "variables" (Drupal <= 7). Pero, ¿cuál es el nuevo comando Drush para lograr los mismos fines?

Específicamente quiero convertir los comandos:

drush variable-set site_mail someone@email.com
drush variable-set update_notify_emails someone@email.com

al nuevo equivalente Drupal8 / Drush8 ...

Respuestas:


18

Después de investigar un poco más, parece que el nuevo comando es:

  • drush config-set <config-name> <key>(donde estaba el formato anterior drush variable-set <name> <value>). Alias: cset.

Así que no estoy totalmente seguro de que tengo este derecho (por lo comentarios y / o otra respuesta de alguien que sería grande ...), pero parece que la configuración que incluye mensajes de correo electrónico son: contact.form.feedback recipients, update.settings notification.emailsy system.site mail.

Esta actualización es el resultado de una buena discusión (a continuación). Tenga en cuenta que algunas configuraciones son matrices (en lugar de cadenas):

www/drupal8# drush config-get update.settings notification
'update.settings:notification':
  emails:
    - admin@example.com
  threshold: all

para actualizar esto necesitas ejecutar:

drush -y config-set update.settings notification.emails.0 admin2@example.com

Fuente: Leverage Drush 7 para Drupal 8 .

Nota: Drush 7 ya no es compatible con Drupal 8, pero esto aún se aplica.


1
También hay drit cedit, que le permite editar el archivo en un editor. Supongo que necesitarías un mensaje de notificación.emails.0 más o menos para establecerlo en una lista, no estoy seguro.
Berdir

El formato modificado puede hacer que sus notificaciones fallen. En el caso original emailes una matriz que contiene admin@example.com(es decir, varias direcciones de correo electrónico), pero en su resultado se ha convertido emailen una cadena que contiene admin2@example.com(es decir, una sola dirección de correo electrónico).
Alma

@Alma - Gracias por el aviso. ¿Cómo me aseguro de que se ingrese como una matriz?
Jeremy Davis

1
Si. La solución de Berdir funciona. Entonces, haría "drush config-set update.settings notify.emails.0 admin@example.com". Solo lo probé yo mismo ahora.
Alma

1
A drush config-listimprimirá todas las categorías posibles de configuración para que pueda analizarlas. En caso de que alguna vez necesites encontrarlos a todos.
Eric Steinborn

5

Seguimiento adicional,

Para encontrar los identificadores para la configuración para obtener o establecer,

  • Ya NO puede adivinar los nombres de máquina de las variables simplemente inspeccionando los formularios de configuración del sistema. Solía ​​haber una coincidencia 1: 1: 1 entre el elemento de formulario que se ve en muchas pantallas de configuración, el $config['varname']que podría poner $settings.phpy drush vset / vget
  • El administrador de configuración en la interfaz de usuario (que se encuentra en admin/config/development/configuration/single) proporciona una especie de navegador variable.

Quería actualizar mi local.settings.phppara deshabilitar siempre la agregación css & js cuando se reduce la sincronización.

D7:

$conf['preprocess_css'] = FALSE;
$conf['preprocess_js'] = FALSE;

D8:

$config['system.performance']['css']['preprocess'] = 0;
$config['system.performance']['js']['preprocess'] = 0;

(Y tenga en cuenta que este tipo de anulación NO aparecerá en su IU de administrador, o en drush config-get... aunque surtirá efecto)


El comando Drush para deshabilitar la agregación es: drush -y config-set system.performance css.preprocess 0&&drush -y config-set system.performance js.preprocess 0
leymannx

3

Esto funcionó para mí. Es un comando Drush PHP EVAL.

drush ev '\Drupal::state()->set("MY_VARIABLE", "MY_VALUE")'

Aquí se está utilizando para establecer el estado de MY_VARIABLE

También puede obtener el estado de una variable:

drush ev 'echo \Drupal::state()->get("MY_VARIABLE")'
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.