Jakie polecenie zastępuje „zestaw zmiennych drush”?


14

W Drupal 8 polecenie Drush drush variable-setjuż nie działa.

Z lektury ( tutaj ) wynika, że ​​Drupal 8 ma nowy system „konfiguracji”, który zastępuje stare („Drupal <= 7)” zmienne ”. Ale jakie jest nowe polecenie Drush, aby osiągnąć te same cele?

W szczególności chcę przekonwertować polecenia:

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

do nowego odpowiednika Drupal8 / Drush8 ...

Odpowiedzi:


18

Po kilku dalszych badaniach wydaje się, że nowym poleceniem jest:

  • drush config-set <config-name> <key>(gdzie był stary format drush variable-set <name> <value>). Alias: cset.

Więc nie jestem całkowicie pewien, że mają do tego prawo (tak komentarz i / lub inną odpowiedź od kogoś, kto nie byłby wielki ...), ale wydaje się, że config, który zawiera wiadomości e-mail to: contact.form.feedback recipients, update.settings notification.emailsi system.site mail.

Ta aktualizacja jest wynikiem dobrej dyskusji (poniżej). Zauważ, że niektóre ustawienia są tablicami (a nie ciągami znaków):

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

aby to zaktualizować, musisz uruchomić:

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

Źródło: Leverage Drush 7 dla Drupal 8 .

Uwaga: Drush 7 nie obsługuje już Drupala 8, ale nadal obowiązuje.


1
Istnieje również drush cedit, który pozwala edytować plik w edytorze. Wydaje mi się, że będziesz potrzebować powiadomienia.email.0 lub mniej więcej, aby ustawić go na liście, nie jestem pewien.
Berdir,

Zmieniony format może spowodować niepowodzenie powiadomień. W pierwotnym przypadku emailjest tablica zawierająca admin@example.com(tj. Wiele adresów e-mail), ale w wyniku przekształciłeś emailsię w ciąg zawierający admin2@example.com(tj. Pojedynczy adres e-mail).
Alma,

@Alma - Dzięki za informację. Jak mogę się upewnić, że zostanie wprowadzony jako tablica?
Jeremy Davis,

1
Tak. Rozwiązanie Berdira działa. Więc zrobiłbyś „drush config-set update.settings notification.emails.0 admin@example.com”. Właśnie przetestowałem to teraz.
Alma

1
A drush config-listwydrukuje każdą możliwą kategorię konfiguracji do przeanalizowania. W razie potrzeby znalezienia ich wszystkich.
Eric Steinborn,

5

Dodatkowe działania następcze,

Aby znaleźć identyfikatory konfiguracji do pobrania lub ustawienia,

  • Nie możesz już dłużej zgadywać nazw maszyn zmiennych, tylko poprzez sprawdzenie formularzy ustawień systemowych. Kiedyś istniało dopasowanie 1: 1: 1 między elementem formularza widocznym na wielu ekranach konfiguracji, w $config['varname']którym można było umieścić $settings.phpi drush vset / vget
  • Menedżer konfiguracji w interfejsie użytkownika (znajdujący się pod admin/config/development/configuration/single) udostępnia coś w rodzaju zmiennej przeglądarki.

Chciałem zaktualizować mój, local.settings.phpaby zawsze wyłączał agregację css i js podczas downsyncingu.

D7:

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

D8:

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

(Należy pamiętać, że ten typ zastąpienia NIE BĘDZIE wyświetlany w interfejsie administratora ani w drush config-get... chociaż będzie obowiązywał)


Polecenie Drush do wyłączenia agregacji to: drush -y config-set system.performance css.preprocess 0&&drush -y config-set system.performance js.preprocess 0
leymannx

3

To zadziałało dla mnie. To polecenie Drush PHP EVAL.

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

Tutaj służy do ustawienia stanu MY_VARIABLE

Możesz także uzyskać stan zmiennej:

drush ev 'echo \Drupal::state()->get("MY_VARIABLE")'
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.