'drush variable-set'을 대체하는 명령은 무엇입니까?


14

Drupal 8에서 Drush 명령이 drush variable-set더 이상 작동하지 않습니다.

읽기 ( here )에서 Drupal 8에는 오래된 (Drupal <= 7) "variables"를 대체하는 새로운 "configuration"시스템이 있습니다. 그러나 같은 목표를 달성하기위한 새로운 Drush 명령은 무엇입니까?

특히 명령을 변환하고 싶습니다.

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

새로운 Drupal8 / Drush8 버전에

답변:


18

더 많은 연구를 한 후에 새로운 명령은 다음과 같습니다.

  • drush config-set <config-name> <key>(이전 형식은 drush variable-set <name> <value>)입니다. 별명 : cset.

: 나는 완전히 확실 나는이 권리가 있음을 아니에요 그래서하지만 (의견 및 / 또는 ... 좋은 것입니다 않는 사람에서 다른 답 있도록)는 이메일을 포함하는 설정은 것 같다 contact.form.feedback recipients, update.settings notification.emails하고 system.site mail.

이 업데이트는 좋은 토론을위한 결과입니다 (아래). 일부 설정은 문자열이 아닌 배열입니다.

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

이것을 업데이트하려면 다음을 실행해야합니다.

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

출처 : Drupal 8 용 Drush 7 활용 .

참고 : Drush 7은 더 이상 Drupal 8을 지원하지 않지만 여전히 적용됩니다.


1
편집기에서 파일을 편집 할 수있는 drush cedit도 있습니다. 확실하지 않은 목록으로 설정하려면 notification.emails.0 정도가 필요할 것 같습니다.
Berdir

형식이 변경되면 알림이 실패 할 수 있습니다. 원래의 경우 여러 전자 메일 주소가 email포함 된 배열 admin@example.com이지만 결과적 email으로 admin2@example.com단일 전자 메일 주소가 포함 된 문자열로 바뀌 었 습니다 .
Alma

@Alma-감사합니다. 배열로 입력되었는지 어떻게 확인합니까?
Jeremy Davis

1
예. Berdir의 해결책이 효과가 있습니다. 따라서 "drush config-set update.settings notification.emails.0 admin@example.com"을 수행합니다. 방금 직접 테스트했습니다.
Alma

1
A drush config-list는 구문 분석 할 수있는 모든 구성 범주를 인쇄합니다. 당신이 그들 모두를 찾을 필요가있는 경우를 대비하여.
Eric Steinborn

5

추가 후속 조치

설정을 가져 오거나 설정할 식별자를 찾으려면

  • 시스템 설정 양식을 검사하여 변수의 기계 이름을 더 이상 추측 할 수 없습니다. 1 : 1이있을 사용되는 많은 설정 화면에서 볼 수있는 폼 요소 사이의 1 일치는 $config['varname']당신이에 넣어 수 $settings.php및 drush을 Vset / vget
  • UI의 구성 관리자 (에 있음 admin/config/development/configuration/single)는 가변 브라우저를 제공합니다.

local.settings.php다운 싱크 할 때 항상 CSS 및 js 집계를 비활성화 하도록 업데이트하고 싶었 습니다.

D7 :

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

D8 :

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

(그리고 이러한 유형의 재정의는 관리 UI에 표시되지 drush config-get않지만 적용됩니다.)


집계 비활성화에 대한 Drush 명령은 다음과 같습니다. drush -y config-set system.performance css.preprocess 0&&drush -y config-set system.performance js.preprocess 0
leymannx

3

이것은 나를 위해 일했습니다. Drush PHP EVAL 명령입니다.

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

여기서는 MY_VARIABLE의 상태를 설정하는 데 사용됩니다

변수의 상태를 얻을 수도 있습니다 .

drush ev 'echo \Drupal::state()->get("MY_VARIABLE")'
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.