Drupal 8 माइग्रेशन मॉड्यूल में नए माइग्रेशन को कैसे रिफ्रेश करें?


10

जब Drupal 8 माइग्रेट करने की प्रक्रिया लिखते हैं तो मैं केवल नई माइग्रेशन प्रक्रियाओं को रीफ्रेश कर सकता हूं यदि मैं कस्टम माइग्रेशन मॉड्यूल को पुनर्स्थापित करता हूं। शराबी करोड़ काम नहीं करता है

स्पष्टीकरण:

मेरे पास एक मॉड्यूल है, अर्थात: cm_migrationsजिसके 2 माइग्रेशन हैं:

  • cm_users
  • cm_tags

साथ drush msमैं देख रहा हूँ:

Group: beer     Status  Total  Imported  Unprocessed  Last imported       
 cm_users        Idle    3      3         0            2016-02-09 16:56:25 
 cm_tags         Idle    4      0         4                                

मैं एक नई माइग्रेट प्रक्रिया लिखता हूं:

  • cm_beers

मैं निष्पादित करता हूं drush cr; drush msऔर मुझे पिछली की तरह ही तालिका दिखाई देती है।

केवल जब मैं स्थापना रद्द करता हूं और स्थापित करता cm_migrationsहूं तो मैं तीन माइग्रेशन प्रक्रियाएं देख सकता हूं:

Group: beer     Status  Total  Imported  Unprocessed  Last imported       
 cm_users        Idle    3      3         0            2016-02-09 16:56:25 
 cm_tags         Idle    4      0         4                          
 cm_beers        Idle    4      0         4              

मॉड्यूल को पुनर्स्थापित किए बिना मैं माइग्रेशन प्रक्रियाओं को कैसे ताज़ा कर सकता हूं इसके बारे में कोई सुराग?

धन्यवाद


इसके अलावा, मैं कह सकता हूं कि यदि मैं माइग्रेशन प्रक्रिया को निष्पादित करता हूं, तो सामग्री को हटा दें migrate.migration.cm_beers.ymlऔर फिर से प्रक्रिया को निष्पादित करें, माइग्रेशन विफल नहीं होता है। ऐसा लगता है कि यमल फ़ाइल की सामग्री कहीं रखी गई है।
इग्नासियुस सांचेज़

जवाबों:


19

मैंने पाया कि यह मेरे लिए काम कर रहा है

drush config-import --partial --source = मॉड्यूल / कस्टम / migrate_module / config / install /


नमस्ते, उपरोक्त निम्नलिखित त्रुटि देता है: स्रोत निर्देशिका मौजूद नहीं है। स्रोत कोई निर्देशिका नहीं है।
हरशल

5

उसके लिए एक मॉड्यूल है। चूंकि आम तौर पर yml फाइलें केवल इंस्टॉल पर लोड की जाती हैं।

यह मॉड्यूल आपको परिभाषित कर सकता है कि कौन सी मॉड्यूल कॉन्फिग फ़ाइल स्वचालित रूप से आयातित हैं

https://www.drupal.org/project/config_devel

इस ब्लॉग पोस्ट को भी देखें: https://blog.liip.ch/archive/2016/05/04/use-the-new-drupal-8-migration-ap-module.html

अपने खुद के Drupal 8 माइग्रेट मॉड्यूल का विकास करना और कैशिंग मुद्दों से लड़ना

आपने सीखा है, कि संपूर्ण माइग्रेशन मैपिंग अब yaml फ़ाइलों में की गई है। लेकिन कैसे अपने खुद के प्रवास yaml फ़ाइलों को लिखने के बारे में?

दुर्भाग्य से, नए Drupal 8 डेवलपर्स के लिए कुछ नुकसान हैं। Drupal 8 के कॉन्फ़िगरेशन प्रबंधन इंटरफ़ेस ( https://www.drupal.org/documentation/administer/config ) की वजह से , "कॉन्फ़िगर / इंस्टॉल" निर्देशिका में सभी yml फाइलें केवल मॉड्यूल को स्थापित करते समय आयात की जाती हैं।

यदि आप नई कॉन्फ़िगरेशन फ़ाइलों को विकसित करना चाहते हैं तो यह बहुत ही अव्यावहारिक है। इसे संबोधित करने के लिए, एक मॉड्यूल "कॉन्फ़िगरेशन डेवलपमेंट" ( https://www.drupal.org/project/config_devel ) जो हल करता है कैशिंग मुद्दों को स्थापित किया जा सकता है। प्रत्येक अनुरोध पर कुछ yml फ़ाइलों को आयात करना संभव है। लेकिन दुर्भाग्य से ड्रश कमांड अभी तक समर्थित नहीं हैं। इसलिए हमें उन सभी yaml फ़ाइलों को जोड़ना होगा जिन्हें हम अपने मॉड्यूल.info.yml में एक नए अनुभाग में आयात करना चाहते हैं।

config_devel:
 install:
   - migrate_plus.migration.page_node
   - migrate_plus.migration.menu_item
   - migrate_plus.migration_group.liip

फिर हम yml फ़ाइल को अपडेट करने के बाद निम्नलिखित कमांड चला सकते हैं। यह कॉन्फ़िगरेशन प्रबंधन इंटरफ़ेस में नई कॉन्फ़िगरेशन फ़ाइल आयात करेगा।

drush cdi <module_name>
drush cr

मुझे यह काम करने के लिए नहीं मिल सकता है, और दस्तावेज की कमी है। क्या आप थोड़ी और जानकारी दे सकते हैं? drupal.org/node/2845304
माइकल मैलेट

5

माइग्रेशन MODULENAME/migrationsउपनिर्देशिका में होना चाहिए । माइग्रेशन को संशोधित करने के बाद drush crपरिवर्तनों को लागू करने के लिए एक सरल प्रत्यय कॉन्फ़िगर करता है ।

एक कॉन्फ़िगरेशन व्युत्पन्न एक माइग्रेशन कॉन्फ़िगरेशन को माइग्रेशन प्लग इन में बदल देगा।

यह परिवर्तन रिकॉर्ड देखें: माइग्रेशन कॉन्फ़िगरेशन संस्थाओं के बजाय प्लगइन्स हैं


2

मैं एक ही मुद्दे के साथ संघर्ष कर रहा था: विकास के दौरान माइग्रेशन कॉन्फ़िगरेशन को कैसे अपडेट किया जाए। यहाँ मैं के साथ समाप्त हो गया है:

drush cdi1 path-to-config-dir-form-site-root/your-config.yml

config-devel-import-one, कमांड ( cdi1संक्षिप्त के लिए) सक्रिय कॉन्फ़िगरेशन में एकल कॉन्फ़िगरेशन आयात करने का इरादा है। यह ऊपर वर्णित config_devel मॉड्यूल का हिस्सा है।


1

मुझे FLY के समाधान के साथ सफलता नहीं मिली। Yaml के ताज़ा होने के लिए, migrate_tools को भी अनइंस्टॉल करना पड़ा। और साथ नसीब नहीं devel_config

मुझे यह ताज़ा कॉन्फ़िगरेशन मिला:

$ drush @site_alias pmu mymodule, migrate_tools, migrate_plus -y
$ drush @site_alias en mymodule, migrate_tools, migrate_plus -y

0

पीटर जे लॉर्ड के समाधान के बाद, आप अपनी सेटिंग्स में एक नई निर्देशिका (नए या अपडेट किए गए ymls) के लिए एक कॉन्फ़िगर निर्देशिका (एफपीएल फ़ाइल) जोड़ सकते हैं। उदाहरण के लिए:

$config_directories['fresh'] = 'sites/default/fresh';

नई yml फ़ाइलों को उस निर्देशिका में रखें और फिर ड्रश के कॉन्फिगरेशन-इंपोर्ट कमांड के साथ नई कॉन्फ़िगरेशन सेटिंग्स आयात करें:

drush cim fresh --partial 

-1

मैंने पाया है कि कभी-कभी उपरोक्त कार्यों में से कोई भी नहीं। यहां तक ​​कि उन सभी को मिलाकर। हालाँकि, मैं मुझे कुछ अंतर्दृष्टि देने में माइग्रेट_टूल ट्रिक कर सकता था।

स्पष्ट रूप से एक जांच है कि क्या सूचीबद्ध होने से पहले yml फ़ाइल वैध है। आयातक को चलाने का प्रयास करें (हाँ, भले ही यह साथ न दिखा हो $ drush ms)

मेरे प्रवास को उत्पाद कहा जाता था, इसलिए मैंने किया: $ drush mim products

Migration failed with source plugin exception: The &quot;int&quot; plugin does not exist.

इस खराबी को ठीक करना (मेरे मामले में पूर्णांक में int को बदलना) और फिर ऊपर दिए गए @FLY के उत्तर का अनुसरण करने से माइग्रेशन शो हो गया। शर्म की बात है कि त्रुटि नहीं दिखाई दी और यह चुपचाप विफल रहा, लेकिन यह एक और विषय है। ;-)

PS मैंने इसे एक टिप्पणी के रूप में पोस्ट किया होगा, लेकिन मेरे पास अभी तक पर्याप्त अंक नहीं हैं।


-2

ऊपर FLY के उत्तर में , drush cdi <module_name>अब होना चाहिए drush cde <module_name>


2
drush cde कॉन्फिगर एक्सपोर्ट करता है और आपके पास जो कुछ भी है उसे ओवरराइट कर देता है। यही हम नहीं चाहते। यह कैसे स्वीकार किया जाता है?
माइकल मैलेट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.