Qual è il comando che sostituisce 'drush variabile-set'?


14

In Drupal 8 il comando Drush drush variable-setnon funziona più.

Dalla lettura ( qui ) sembra che Drupal 8 abbia un nuovo sistema di "configurazione" che sostituisce le vecchie (Drupal <= 7) "variabili". Ma qual è il nuovo comando Drush per raggiungere gli stessi fini?

In particolare voglio convertire i comandi:

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

al nuovo equivalente Drupal8 / Drush8 ...

Risposte:


18

Dopo alcune ulteriori ricerche sembra che il nuovo comando sia:

  • drush config-set <config-name> <key>(dove era il vecchio formato drush variable-set <name> <value>). Alias: cset.

Quindi io non sono del tutto sicuro che ho questo diritto (in modo da commento e / o di un'altra risposta da qualcuno che fa sarebbe grande ...), ma sembra che la configurazione che include messaggi di posta elettronica sono: contact.form.feedback recipients, update.settings notification.emailse system.site mail.

Questo aggiornamento è il risultato di alcune buone discussioni (sotto). Si noti che alcune impostazioni sono matrici (anziché stringhe):

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

per aggiornare questo è necessario eseguire:

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

Fonte: Sfrutta Drush 7 per Drupal 8 .

Nota: Drush 7 non supporta più Drupal 8, ma questo vale ancora.


1
C'è anche Drush Cedit, che ti permette di modificare il file in un editor. Immagino che avresti bisogno di notification.emails.0 o giù di lì per impostarlo su un elenco, non sono sicuro.
Berdir,

Il formato modificato potrebbe causare il fallimento delle notifiche. Nel caso originale emailè un array contenente admin@example.com(cioè più indirizzi e-mail), ma nel tuo risultato ti sei trasformato emailin una stringa contenente admin2@example.com(cioè un singolo indirizzo e-mail).
Alma,

@Alma - Grazie per il testa a testa. Come posso assicurarmi che venga inserito come un array?
Jeremy Davis,

1
Sì. La soluzione di Berdir funziona. Quindi faresti "drush config-set update.settings notification.emails.0 admin@example.com". Ho appena testato me stesso ora.
Alma,

1
A drush config-liststamperà tutte le possibili categorie di configurazione da analizzare. Nel caso in cui tu abbia mai bisogno di trovarli tutti.
Eric Steinborn,

5

Follow-up aggiuntivo,

Per trovare gli identificativi per la configurazione da ottenere o impostare,

  • Non si può più indovinare i nomi delle variabili delle macchine semplicemente controllando i moduli delle impostazioni di sistema. C'era una corrispondenza 1: 1: 1 tra l'elemento del modulo visto su molte schermate di configurazione, il che $config['varname']si poteva inserire $settings.phpe trascinare vset / vget
  • Il gestore di configurazione nell'interfaccia utente (disponibile in admin/config/development/configuration/single) fornisce una sorta di browser variabile.

Volevo aggiornare il mio local.settings.phpper disabilitare sempre l'aggregazione css & js durante il downsyncing.

D7:

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

D8:

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

(Tieni presente che questo tipo di sostituzione NON drush config-getverrà visualizzato nell'interfaccia utente di amministrazione o in ... sebbene abbia effetto)


Il comando Drush per disabilitare l'aggregazione è quindi: drush -y config-set system.performance css.preprocess 0&&drush -y config-set system.performance js.preprocess 0
leymannx

3

Questo ha funzionato per me. È un comando Drush PHP EVAL.

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

Qui viene utilizzato per impostare lo stato di MY_VARIABLE

Puoi anche ottenere lo stato di una variabile:

drush ev 'echo \Drupal::state()->get("MY_VARIABLE")'
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.