जवाबों:
Drupal 7 system
तालिका डेटा अब पैरामीटर के config
विरुद्ध Drupal 8 में तालिका में संग्रहीत है core.extension
।
समाधान 1: कॉन्फ़िगरेशन अपडेट करें
आप निम्न कोड का उपयोग करके चला सकते हैं drush eval
या देवल मॉड्यूल के प्रावधान का उपयोग कर सकते हैं Execute PHP Code
।
// Read the configuration.
$module_data = \Drupal::config('core.extension')->get('module');
// Unset the modules you do not need.
unset($module_data['MODULE_NAME']);
// Write the configuration.
\Drupal::configFactory()->getEditable('core.extension')->set('module', $module_data)->save();
आप यह सब एक त्वरित वन-लाइनर के साथ कर सकते हैं drush
।
drush eval "\$module_data = \Drupal::config('core.extension')->get('module'); unset(\$module_data['MODULE_NAME']); \Drupal::configFactory()->getEditable('core.extension')->set('module', \$module_data)->save();"
समाधान 2: यदि आप PHP को निष्पादित नहीं कर सकते हैं तो कॉन्फ़िगर तालिका को संपादित करें
यदि साइट समस्याग्रस्त मॉड्यूल के कारण टूट गई है और आप PHP कोड भी नहीं चला सकते हैं, तो हो सकता है कि आप config
तालिका को सीधे संपादित कर सकें।
config
तालिका में पंक्ति में जहां name = "core.extension"
और BLOB कॉलम संपादित करें data
। data
एक धारावाहिक पीएचपी सरणी आप मॉड्यूल आप से छुटकारा पाने के लिए चाहते हैं को दूर करने के लिए है, जहां है module
विन्यास के प्रमुख।
समाधान 3: तेज और गंदा समाधान
cache_config
हालाँकि, यह समाधान संदेश में कह सकता है कि मॉड्यूल फ़ाइल सिस्टम में मौजूद नहीं है, जिसका अर्थ है कि कुछ गलत है। लेकिन कम से कम टूटा हुआ मॉड्यूल अक्षम हो जाता है और आप ज्यादातर मामलों में अपनी साइट तक पहुंच सकते हैं।
कैशे साफ़ करना
कभी-कभी उपरोक्त चरणों का पालन करने के बाद आपको कैश साफ़ करना पड़ सकता है। कैश को कैसे साफ़ करें, इस आसान दस्तावेज को पढ़ें ।
drush eval
। एक उदाहरण वन-लाइनर है: drush eval "\$module_data = \Drupal::config('core.extension')->get('module'); unset(\$module_data['example_module']); \Drupal::configFactory()->getEditable('core.extension')->set('module', \$module_data)->save();
बच गए डॉलर के चिन्ह पर ध्यान दें ताकि कमांड लाइन $module
बैश वेरिएबल के रूप में गलत व्याख्या न करे ।
config
तालिका को संपादित करें जहां name = 'core.extension'
मॉड्यूल को डेटा बूँद से हटा दें जो एक क्रमबद्ध सरणी है।(...s:6:"module";a:HERE;{...)
cache_config
तालिका को कमांड करें या कमांड-लाइन का उपयोग करें।i:0;s:8:"name of the module";
s:8:"name of the module";i:0;
। @Valli का मतलब यह था कि मॉड्यूल की संख्या का वर्णन करने वाले सरणी को हटाए गए मॉड्यूल की मात्रा से संख्या में घटाया जाना चाहिए। मेरे सेटअप में बूँद की भीख माँग है a:4:{s:6:"module";a:59:{
, जो 59 मॉड्यूल की एक सरणी है। यदि आप दो परिवर्तन हटाते हैं, तो यह मान 57 पर आ जाता है।
Drush का उपयोग करने पर विचार करें। Drupal 8 अभी भी परिभाषित कर रहा है कि "अक्षम करने वाले मॉड्यूल" क्या होने चाहिए। एक चर्चा चल रही है कि क्या वह विकल्प होना चाहिए या उसे हटा दिया जाना चाहिए।
उसके लिए एक मॉड्यूल है। यह मॉड्यूल अगस्त 2013 में drupal.org पर पोस्ट किया गया था । मामले में किसी को जरूरत है।
जैसा कि इस मॉड्यूल के पेज पर बताया गया है,
Drupal 8 ने कई कारणों से मॉड्यूल को अक्षम करने की क्षमता को हटा दिया है। # 1199946 देखें: अक्षम मॉड्यूल मरम्मत से परे टूट जाते हैं इसलिए "अक्षम" कार्यक्षमता को हटाने की आवश्यकता होती है और विभिन्न कोर और योगदान मॉड्यूल की कतार में कई अन्य मुद्दों।
यह मॉड्यूल UI से या ड्रश के साथ (अस्थायी रूप से) अक्षम मॉड्यूल की क्षमता को वापस लाता है। ध्यान दें, कि किसी मॉड्यूल को अक्षम करने के बाद आपकी सामग्री, कॉन्फ़िगरेशन या यहां तक कि आपकी साइट की कोई गारंटी नहीं है।
यह है कि, मैंने अपने Drupal 8 उदाहरण से "better_messages" नामक एक मॉड्यूल को मैन्युअल रूप से हटा दिया है। जैसे ही मैंने "better_messages" मॉड्यूल स्थापित किया, साइट नीचे चली गई। इसलिए उपयोगकर्ता इंटरफ़ेस से मॉड्यूल की स्थापना रद्द करने का कोई तरीका नहीं था। मैं Drush स्थापित नहीं है। मैंने मंचों में कई सेटिंग्स दी हैं, लेकिन इस तरह से यह मेरे लिए आखिरकार काम कर गया।
1 मॉड्यूल फ़ोल्डर में old_better_messages के लिए मॉड्यूल का नाम दिया।
Url के माध्यम से, http: // IP: port / foldername / rebuild.php चला गया । इससे यह सुनिश्चित हो गया कि साइट वापस आ गई है, लेकिन केवल रीड-ओनली मोड में है। मैं व्यवस्थापक गतिविधियों या लेखों को संपादित नहीं कर सका।
डेटाबेस से प्रविष्टि को हटाने के लिए निम्न आदेश का उपयोग किया जाता है
DELETE FROM key_value WHERE संग्रह = 'system.schema' और नाम = 'better_messages';
मेरे मामले में, डेटाबेस में कोई प्रविष्टि नहीं थी। मुझे लगता है कि यह मेरे द्वारा पहले किए गए विभिन्न स्टंटों के कारण हटा दिया गया हो सकता है।
इससे समस्या हल हो गई। यह https://www.drupal.org/node/2487215 की मेरी व्याख्या पर आधारित है
ऊपर Jigarius 'जवाब, काम की तरह ...
मुझे निम्न करना था: // कॉन्फ़िगरेशन पढ़ें।
$module_data = \Drupal::config('core.extension')->get()['module'];
कौन सा चाहिए एक ही बात करते हैं। निश्चित नहीं है कि यह काम क्यों नहीं किया क्योंकि Jigarius ने इसे लिखा है ...