मैं किसी अन्य साइट पर कॉन्फ़िगरेशन को कैसे आयात कर सकता हूं?


49

जब मैं किसी अन्य साइट के कॉन्फ़िगरेशन को आयात करने का प्रयास करता हूं तो मुझे यह त्रुटि होती है:

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

मेरे 10 ग्राहक हैं, और मुझे 10 अलग-अलग वेबसाइटों के साथ अपनी साइट कॉन्फ़िगरेशन को सिंक करने की आवश्यकता है।
साइट UUID एक अलग वेबसाइट के साथ कॉन्फ़िगरेशन साझा करने के लिए एक समस्या है। क्या कोई हल है?


1
एक और अच्छा जवाब यहाँ drupal.stackexchange.com/q/152584/39617
digitgopher

जवाबों:


55

आप इसके साथ UUID प्राप्त कर सकते हैं:

drush config-get "system.site" uuid

और आप इसे बदल सकते हैं

drush config-set "system.site" uuid "fjfj34-e3bb-2ab8-4d21-9100-b5etgetgd99d5"

इसके साथ ही आपके पास समान साइटें होंगी।


मेरे लिए काम किया ... तीन साल बाद। धन्यवाद!
mrlexington

17

कॉन्फ़िगरेशन प्रबंधन केवल उसी साइट या प्रोजेक्ट के बीच सिंक कॉन्फ़िगरेशन की अनुमति देता है, जो साइट a.com से b.com तक कॉन्फ़िगरेशन आयात करने वाले मुद्दों से बचने के लिए, इस मान्यता को पूरा करने के लिए Drupal 8 प्रत्येक साइट के लिए एक UUID उत्पन्न करता है ।

आप अपनी वर्तमान साइट UUID प्राप्त करते हैं जो निम्नलिखित कमांड को निष्पादित करता है:

drush cget system.site

ऊपर की कमांड हमारे पास अगली लिस्टिंग के समान आउटपुट होगी:

uuid: 236fa77c-d83e-42de-8a03-03c574c00160
name: Drupal 8
mail: user@example.com
slogan: ''
page:
  403: ''
  404: ''
  front: node
admin_compact_mode: false
weight_select_max: 100
langcode: en

कॉन्फ़िगरेशन आयात में एक अलग UUID है, आप निम्न आदेश के साथ UUID की पुष्टि कर सकते हैं

cat sites/default/config/staging/system.site.yml

उस कारण से आपको निम्न Drush कमांड का उपयोग करके साइट UUID का मान बदलना होगा:

drush cedit system.site

ऊपर दी गई कमांड आपको अपने पसंदीदा टेक्स्ट एडिटर का उपयोग करके उसी यूयूआईडी को सेट करने में सक्षम बनाती है, जो कॉन्फिग फाइल में मौजूद है।

cat sites/default/config/staging/system.site.yml

UUID को बदलने और अनुमतियों को बदलने के बाद, यदि आप फिर से पृष्ठ example.com/admin/config/development/configuration पर जाते हैं, तो आपको सभी परिवर्तन, विलोपन, नाम और परिवर्धन दिखाई देंगे।

स्रोत: http://enzolutions.com/articles/2014/08/27/understanding-configuration-management-in-drupal-8/


9
सही, लेकिन ध्यान रखें कि किसी अन्य को बदलने के बिना साइट यूयूआईडी को बदलने का मतलब है कि ड्रुपल हर क्षेत्र / नोड प्रकार / दृश्य का इलाज करेगा ... जो कि एक अलग चीज के रूप में एक अलग यूयूआईडी है और पहले पुराने को हटा देगा और फिर- इसे फिर से बनाएं, जो अनिवार्य रूप से आपकी सभी सामग्री को हटा देगा।
बेर्दिर

ठीक है धन्यवाद, लेकिन यह एक समर्पित सर्वर और लिनक्स ज्ञान के बिना एक उपयोगकर्ता के लिए उपयोगकर्ता के अनुकूल नहीं है, एक समाधान बुनियादी / शुरुआती उपयोगकर्ताओं (बिना ssh और कमांड लाइनों के, केवल एक ftp सर्वर के लिए मौजूद है) कृपया? Drush को कमांड लाइन की आवश्यकता है और यह मेरे ग्राहकों के लिए उपयोगकर्ता के अनुकूल नहीं है।
एक्सल ब्रिके

यदि मैं निर्यात की गई कॉन्फ़िगरेशन (के साथ drush config-set system.site uuid "abcdef-...") को मिलान करने के लिए मौजूदा ड्रुपल वेबसाइट (ताज़ा इंस्टॉल) के यूयूआईडी को बदल देता हूं तो वास्तव में क्या होगा ?
गोडो

1
अपडेट साइट UUID को कॉपी करने के लिए एक-लाइन कमांड। drush -y cset system.site uuid $(cat /path/to/config/system.site.yml | awk '/uuid/ { print $2 }')
येट।

10

Drupal Console का उपयोग करना

आप - कुंजी को ओवरराइड करके ड्रुपल कंसोल के साथ ही प्राप्त कर सकते हैं ।system.siteuuid

$ drupal config:override

संकेत मिलने पर कॉन्फ़िगरेशन नाम system.site, कॉन्फ़िगरेशन कुंजी uuidऔर उचित मान दर्ज करें।

Enter configuration name [advagg.settings]:
> system.site

Enter the configuration key [uuid]:
> uuid

Enter the configuration value:
> 656165f1-1017-45a1-9bd8-f70e31cf29ab

Configuration name system.site
------------------- -------------------------------------- -------------------------------------- 
Configuration key   Original Value                         Override Value                        
------------------- -------------------------------------- -------------------------------------- 
uuid                7622bb19-5f3f-452d-82a3-c0a88241e789   656165f1-1017-45a1-9bd8-f70e31cf29ab  
------------------- -------------------------------------- -------------------------------------- 

1
मुझे लगता है कि यह स्वीकृत उत्तर होना चाहिए।
बद्री

7

आप साइट या डेटाबेस तक पहुंच के बिना साइट यूयूआईडी प्राप्त कर सकते हैं।

यदि आपके पास मूल साइट / डेटाबेस तक पहुंच नहीं है, तो आप अभी भी प्रदान की गई फ़ाइलों से सिंक कर सकते हैं। कॉन्फ़िगरेशन में आपकी साइट का UUID होगा, इसलिए आपको पहले सेट करना होगा।

  1. अपनी कॉन्‍फ़िगरेशन / सिंक निर्देशिका खोजें: यदि इसे स्थानांतरित किया गया है, तो आप पा सकते हैं कि यह कहाँ सेट किया गया था settings.php। इसके लिए देखें: $config_directories['sync']जो पथ को सूचीबद्ध करेगा।

  2. उस कॉन्फ़िग पथ पर जाएं, और फ़ाइल देखें: system.site.yml उस फ़ाइल में, uuid: 86b376c5-385e-4d13-bf00-e5e5443540e3आपके लिए एक अलग मान होगा, जाहिर है)। उस मूल्य की प्रतिलिपि बनाएँ।

  3. ड्रश में, अपनी साइट को उसी साइट पर सेट करें, जिसे हमने खोजा था: drush cset system.site uuid 86b376c5-385e-4d13-bf00-e5e5443540e3

  4. ड्रश का उपयोग करके कॉन्फिगरेशन को सिंक करें drush cim -y

  5. यदि आपको त्रुटियां मिलती हैं, तो उन्हें पढ़ें । मैं था:

    • एक लापता मॉड्यूल (जिसे मुझे डाउनलोड और सक्षम करना था)
    • शॉर्टकट मॉड्यूल से सामग्री, जिसे मुझे पहले हटाना था:
    • व्‍यवस्‍थापक> कॉन्‍फ़िगरेशन> उपयोगकर्ता इंटरफ़ेक्ट> शॉर्टकट

एक बार जब मैंने ऐसा किया, मैंने कैम को फिर से चलाया, और सब कुछ एक आकर्षण की तरह काम किया!

प्रदान की गई कॉन्फिगरेशन से पुनर्स्थापित करने का प्रयास करने से पहले मैंने एक स्थानीय D8 इंस्टेंस स्थापित किया था।


4

आप गंतव्य स्थल के लिए UUID को बदल सकते हैं, जिसमें ड्रिंक केसेट और ड्रश का प्रयोग किया जाता है।

सबसे पहले UUID स्रोत प्राप्त करें:

$ cd ~/Sites/sourcesite <-- your drupal site root
$ drush cget system.site uuid
This will return something like:
'system.site:uuid': 86b376c5-385e-4d13-bf00-e5e5443540e3 

UUID गंतव्य को बदलें

cd ~/Sites/destinationsite <-- your drupal site root
$ drush cset system.site uuid 86b376c5-385e-4d13-bf00-e5e5443540e3 

अब आप कर सकते हैं:

  1. व्यवस्थापक / कॉन्फ़िगरेशन / विकास / कॉन्फ़िगरेशन / पूर्ण / आयात पर अपने ब्राउज़र में गंतव्य साइट पर नेविगेट करें
  2. कॉन्फ़िगरेशन संग्रह का चयन करें और अपलोड का चयन करें
  3. आपको सभी कॉन्फ़िगरेशन आइटमों की एक सूची दिखाई देगी
  4. नीचे की ओर स्क्रॉल करें और सभी बटन आयात पर क्लिक करें

0

यदि आप गुच्चो Ca के उत्तर में दिए गए निर्देशों का पालन करते हैं, और अभी भी समस्या है, तो यह सुनिश्चित कर लें कि आपके सिंक कॉन्फ़िगरेशन निर्देशिका में अनुमतियाँ हैं। यह आपको एक ही त्रुटि संदेश देगा, भले ही आपके uuids समान हों, लेकिन आपके साइटम में लिखने की अनुमति नहीं है।

चेक करने का एक अच्छा तरीका सिंक्रोनाइज़ अनुभाग के आयात टैब पर क्लिक करना है। यदि आपके पास सही फ़ाइल अनुमतियां नहीं हैं, तो यह आपको वहां बताएगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.