「drush variable-set」を置き換えるコマンドは何ですか?


14

Drupal 8では、Drushコマンドは機能しdrush variable-setなくなりました。

ここ)を読むと、Drupal 8には古い(Drupal <= 7) "変数"を置き換える新しい "構成"システムがあるようです。しかし、同じ目的を達成するための新しい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 recipientsupdate.settings notification.emailssystem.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のLeverage Drush 7

注:Drush 7はDrupal 8をサポートしなくなりましたが、これは引き続き適用されます。


1
また、dedit ceditもあり、エディターでファイルを編集できます。リストに設定するには、notification.emails.0が必要だと思いますが、わかりません。
ベルディール

変更された形式により、通知が失敗する場合があります。元のケースでemailadmin@example.com(つまり複数の電子メールアドレス)を含む配列ですが、結果では(つまり単一の電子メールアドレス)emailを含む文字列になりましたadmin2@example.com
アルマ

@Alma-よろしくお願いします。配列として入力されていることを確認するにはどうすればよいですか?
ジェレミーデイビス

1
はい。Berdirのソリューションは機能します。したがって、「config-set update.settings notification.emails.0 admin@example.comを削除」します。今すぐ自分でテストしました。
アルマ

1
Aは、drush config-listあなたを介して解析するための構成の可能なすべてのカテゴリを表示します。あなたがそれらをすべて見つける必要がある場合に備えて。
エリックスタインボーン

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.