Ush ड्रश वेरिएबल-सेट ’की जगह कौन सी कमांड है?


14

Drupal 8 में Drush कमांड drush variable-setअब काम नहीं करता है।

पढ़ने ( यहां ) से यह प्रतीत होता है कि ड्रुपल 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

तो मैं पूरी तरह से यकीन है कि मैं यह अधिकार नहीं हूँ, लेकिन (टिप्पणी और / या जो ... बहुत अच्छा होगा करता है किसी से एक और जवाब इतना) ऐसा लगता है कि config कि ईमेल शामिल होते हैं: 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

स्रोत: ड्रुपल 8 के लिए लीवरेज ड्रश 7

नोट: Drush 7 अब Drupal 8 का समर्थन नहीं करता है, लेकिन फिर भी यह लागू होता है।


1
वहाँ भी ड्रग cedit है, जो आपको एक संपादक में फ़ाइल को संपादित करने की अनुमति देता है। मुझे लगता है कि आपको सूची में सेट करने के लिए notification.emails.0 या ऐसा करने की आवश्यकता होगी, निश्चित नहीं।
बेर्दिर

परिवर्तित प्रारूप आपकी सूचनाओं को विफल करने का कारण हो सकता है। मूल मामले emailमें एक सरणी युक्त admin@example.com(यानी कई ईमेल पते) हैं, लेकिन आपके परिणाम में आप emailएक स्ट्रिंग युक्त admin2@example.com(यानी एकल ईमेल पते) में बदल गए हैं ।
अल्मा

@ अलमा - सिर ऊपर करने के लिए धन्यवाद। मैं यह कैसे सुनिश्चित करूँ कि यह एक सरणी के रूप में दर्ज हो?
जेरेमी डेविस

1
हाँ। बर्दिर का हल काम करता है। तो आप "drush config-set update.settings notification.emails.0 admin@example.com" करेंगे। अभी-अभी इसका परीक्षण किया है।
अल्मा

1
A drush config-listआपके द्वारा पार्स करने के लिए कॉन्फ़िगरेशन की हर संभव श्रेणी को प्रिंट करेगा। मामले में आप कभी भी उन सभी को खोजने की जरूरत है।
एरिक स्टीनबोर्न

5

अतिरिक्त अनुवर्ती,

प्राप्त करने या सेट करने के लिए कॉन्फ़िगरेशन के लिए पहचानकर्ता खोजने के लिए,

  • आप सिस्टम सेटिंग्स फॉर्म का निरीक्षण करके चर के मशीन नामों पर कोई अनुमान नहीं लगा सकते हैं। कई कॉन्फिग्रेशन स्क्रीन पर देखे गए फॉर्म एलिमेंट के बीच 1: 1: 1 मैच हुआ करता था, जिसे $config['varname']आप डाल सकते थे $settings.phpऔर 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 -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")'
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.