कुछ आइटम के लिए कॉन्फ़िगर आयात विफल दिखाई देता है। मैं यह कैसे तय करुं?

Aug 17 2020

स्टेजिंग को देव से स्टेजिंग में सिंक्रोनाइज़ करने के बाद, मैं उम्मीद करूँगा कि सभी परिवर्तन आयात होने हैं और एक संदेश को प्रदर्शित करने के लिए, "आयात करने के लिए कोई कॉन्फ़िगरेशन परिवर्तन नहीं हैं" की सलाह देते हुए

अधिकांश परिवर्तन आयात किए गए हैं, लेकिन मुझे छह आइटमों के साथ छोड़ दिया गया है, जो ऐसा लगता था कि आयात विफल हो गया है। या कम से कम आयात के लिए वस्तुओं की सूची से स्पष्ट नहीं है।

मुझे समझ में नहीं आता है कि सक्रिय कॉन्फ़िगरेशन क्यों दिखाई देता है, इसका मंचन अपडेट नहीं किया गया है।

सभी को आयात करने के साथ, मैंने सफलता के बिना, प्रत्येक आइटम को अलग से आयात करने का भी प्रयास किया है।

यूआई का उपयोग करने के साथ-साथ ड्रिम सीम की भी कोशिश की है। ड्रश पुष्टि करता है कि कॉन्फ़िगरेशन सफलतापूर्वक आयात किया गया था। लेकिन अगर मैं फिर से ड्रिम सीम चलाता हूं, तो वही 6 फाइलें बनी रहती हैं।

ऐसा क्यों लगता है कि आयात विफल हो रहा है और मुझे इसे ठीक करने के लिए क्या करना चाहिए? क्या मेरा सक्रिय विन्यास किसी तरह गड़बड़ है?

एक स्क्रीनशॉट और समस्या को स्पष्ट करने के लिए कुछ कोड।

UI के माध्यम से

वाया ड्रश

    [easable]:sync$ drush cim +------------+-----------------------------------------------------+-----------+ | Collection | Config | Operation | +------------+-----------------------------------------------------+-----------+ | | block.block.schoolpwa_subtheme_bottommenu | Update | | | block.block.schoolpwa_subtheme_mainnavigation | Update | | | block.block.mainmenu2 | Update | | | block.block.websiteswitcher | Update | | | core.entity_view_display.node.page.default | Update | | | media_bulk_upload.media_bulk_config.pdf_bulk_upload | Update | +------------+-----------------------------------------------------+-----------+ Import the listed configuration changes? (yes/no) [yes]: > [notice] Synchronized configuration: update block.block.schoolpwa_subtheme_bottommenu. [notice] Synchronized configuration: update block.block.schoolpwa_subtheme_mainnavigation. [notice] Synchronized configuration: update block.block.mainmenu2. [notice] Synchronized configuration: update block.block.websiteswitcher. [notice] Synchronized configuration: update core.entity_view_display.node.page.default. [notice] Synchronized configuration: update media_bulk_upload.media_bulk_config.pdf_bulk_upload. [notice] Finalizing configuration synchronization. [success] The configuration was imported successfully. [easable]:sync$ drush cim
    +------------+-----------------------------------------------------+-----------+
    | Collection | Config                                              | Operation |
    +------------+-----------------------------------------------------+-----------+
    |            | block.block.schoolpwa_subtheme_bottommenu           | Update    |
    |            | block.block.schoolpwa_subtheme_mainnavigation       | Update    |
    |            | block.block.mainmenu2                               | Update    |
    |            | block.block.websiteswitcher                         | Update    |
    |            | core.entity_view_display.node.page.default          | Update    |
    |            | media_bulk_upload.media_bulk_config.pdf_bulk_upload | Update    |
    +------------+-----------------------------------------------------+-----------+

     Import the listed configuration changes? (yes/no) [yes]:
     >

जवाब

3 sonfd Aug 17 2020 at 20:24

मैंने पाया है कि इस तरह की बात इसलिए है क्योंकि आपकी सिंक डायरेक्टरी में कॉन्फिग काफी वैध नहीं है। मेरा अनुमान है कि यह आपके देव और स्थानीय परिवेश का एक मुद्दा है, न कि केवल मंचन।

मैंने पाया है कि इस मुद्दे का कारण आमतौर पर दो चीजों में से एक है:

1. कॉन्फ़िगरेशन फ़ाइलों को मैन्युअल रूप से हेरफेर किया गया था और फ़ाइल में कॉन्फ़िगरेशन संभव नहीं है।

एक उदाहरण, आपके पास्टबिन को देखते हुए , core.entity_view_display.node.page.default.yml का परिवर्तन उस प्रदर्शन पर छिपे हुए फ़ील्ड की सूची से निर्मित फ़ील्ड को निकालना है। हालाँकि, फ़ील्ड का प्रदर्शन कैसे किया जाना चाहिए, इसके लिए कोई कॉन्फ़िगरेशन नहीं है। एक फ़ील्ड प्रदर्शित नहीं किया जा सकता है और यह भी छिपा नहीं है। कॉन्फ़िगरेशन की अखंडता को बनाए रखने के लिए, सिस्टम किसी ऐसे क्षेत्र में छिपा होने पर डिफॉल्ट करता है जब वह दोनों जगह पर नहीं होता है।

2. डेटाबेस अपडेट चलाए गए, अपडेट जो कॉन्फ़िगरेशन बदलते हैं, लेकिन अपडेट के बाद कॉन्फ़िगरेशन को देव वातावरण पर निर्यात नहीं किया गया था।

एक उदाहरण, आपके पास्टबिन को देखकर, ऐसा लगता है कि कुछ नए कॉन्फ़िगरेशन विकल्प (उपयुक्त डिफ़ॉल्ट मानों के साथ) जोड़े गए थे। यह भी एक मॉड्यूल के साथ काम करने से बदल तरह लग रहा है trueऔर falseकरने के लिए 1और 0

इस समस्या को हल करने के लिए:

सबसे पहले अपने प्राथमिक विकास पर्यावरण पर जाएं। फिर अपने नवीनतम डेटाबेस ऑफ रिकॉर्ड, क्लियर कैश और तैनाती (डेटाबेस अपडेट, फिर अपने कॉन्फ़िगरेशन को आयात करें) प्राप्त करें। परिणाम वही होना चाहिए जो आप मचान पर देख रहे हैं, अर्थात कुछ कॉन्फ़िगरेशन पूरी तरह से सिंक नहीं होंगे। यह अपेक्षित है (ऊपर वर्णित कारणों के लिए)। अगला अपने कॉन्फ़िगरेशन को फिर से निर्यात करें, कमिट करें, और फिर से तैनात करें।

भविष्य में इस समस्या से बचने के लिए:

  1. सीधे फ़ाइलों को कॉन्फ़िगर न करें। यदि आप करते हैं, तो यह सुनिश्चित करने के लिए कॉन्फ़िगरेशन को स्थानीय रूप से परीक्षण करें कि आपको यह सही मिला (इसमें कॉन्फ़िगरेशन फ़ाइलों में मर्ज विरोधों को हल करने के बाद शामिल है)।
  2. डेटाबेस अद्यतन चलाने के बाद हमेशा कॉन्फ़िगरेशन निर्यात करें। कभी-कभी अपडेट कॉन्फ़िगरेशन बदलते हैं।