"स्रोत डेटाबेस में एक पहचाने जाने योग्य Drupal संस्करण नहीं है।"


9

मैंने अपने स्थानीय उबंटू डेस्कटॉप 15.10 Apache2 (2.4.12) वातावरण में दो Drupal साइटें स्थापित की हैं: एक Drupal 8 की एक ताज़ा स्थापना है और दूसरा Drupal 7 (जो ज्यादातर मुख्य-मॉड्यूल है) के साथ निर्मित एक मौजूदा कार्य स्थल की एक प्रति है आधारित, पृष्ठों के माध्यम से बहुत विनम्र)। दोनों साइटें बिना किसी समस्या के कहीं भी ठीक काम कर रही हैं।

मेरा उद्देश्य सबसे पहले है और Drupal 7 साइट को Drupal 8 में अपग्रेड करना है। मैंने सभी प्रारंभिक चरण समान भाषाओं को कॉन्फ़िगर करने, जैसे मॉड्यूल के माध्यम से कम से कम रखें (D7 साइट में किसी भी मॉड्यूल की स्थापना रद्द करना जो मैं अपग्रेड के बाद आसानी से ला सकता हूं। ), सुनिश्चित करें कि एक ही मॉड्यूल दोनों साइटों, आदि में स्थापित किए गए हैं, और अब मैं बस "ट्रांसड्यूस" (एक अच्छी फिएटिंग आशा करता हूं) मेरे ड्रुपल 7 साइट को नए ड्रुपल 8 एक में स्थापित करना चाहता हूं।

अपने उद्देश्य को प्राप्त करने के लिए मैंने अपने Drupal 8 साइट में Drupal Upgrade मॉड्यूल स्थापित किया है , लोकलहोस्ट / साइटनेम / अपग्रेड पर गया और Drupal 7 साइट के सभी विवरणों को भरा।

जब मैंने "रिव्यू अपग्रेड" बटन पर क्लिक किया तो मुझे त्रुटि मिली:

स्रोत डेटाबेस में एक पहचानने योग्य Drupal संस्करण नहीं है।

मैंने इस त्रुटि को एक सटीक वाक्यांश ("त्रुटि") के रूप में जाना है और बहुत कम परिणाम पाए हैं; उनमें से अधिकांश के लिए मुझे एक PHP प्रोग्रामिंग ज्ञान की आवश्यकता होती है जो मैंने अभी तक अर्जित की है, इसलिए मैं यह निर्धारित नहीं कर सकता कि त्रुटि बग के कारण है (विशेषकर चूंकि यह मॉड्यूल अभी भी भारी विकास के अधीन है) या मेरी गलती के कारण इस मॉड्यूल की अवधारणा \ कार्यक्षमता को समझना।

  1. ऐसे कौन से कारण हैं कि D8 Drupal का अपग्रेड मॉड्यूल "D7 डेटाबेस" जैसा प्रदान नहीं किया गया? खासकर जबकि Drupal 7 साइट ऑनलाइन और स्थानीय दोनों तरह से काम कर रही है।

  2. यदि उन्नयन किसी भी कारण से संभव नहीं है, तो उन्नयन के लिए एक अच्छा विकल्प होगा? यदि हां, तो प्रवास के लिए सबसे अच्छा सबसे सरल उपाय क्या है?

यहां छवि विवरण दर्ज करें

मैं /var/www/html/benia/modules/migrate_upgrad/src/MigrationCreationTrait.php पर गया और किया:

-- return $version_string ? substr($version_string, 0, 1) : FALSE;

++ return 7;
++ return $version_string ? substr($version_string, 0, 1) : FALSE;

थान को यह त्रुटि स्क्रीन के ऊपर मिली।

यहां छवि विवरण दर्ज करें


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

यह DB की तरह क्यों नहीं होगा? इस DB के साथ D7 साइट बिना किसी

1
ओह और @Birdir "कॉन्फ़िगरेशन" द्वारा आप D8 साइट में Drupal Upgrad मॉड्यूल के अर्थ में हैं? मुझे यकीन था कि मैंने जो विवरण भरा है, जहां मुझे ज़रूरत है, मैं जांच करूंगा कि क्या मैंने कुछ भी याद किया है ... आपको लगता है कि मैंने कुछ याद किया? ...

क्या आपने पहले से ही लोकलहोस्ट के बजाय 127.0.0.1 की कोशिश की है? (जैसा कि शायद यह वास्तव में आपके वर्तमान अपग्रेड कॉन्फ़िगरेशन के साथ डेटाबेस के माध्यम से नहीं मिलता है)
leymannx

क्षमा करें मुझे लगता है कि मुझे समझ में आ गया है ... क्या आपने जो लिखा है उसे कृपया पुनःप्रकाशित कर सकते हैं? बहुत धन्यवाद!!!

जवाबों:


4

इस स्तर पर, मुझे नहीं लगता कि simple7 से 8 में अपग्रेड करने का विकल्प है। जैसा कि आप जारी नोट पर देख सकते हैं:

एक बार तैयार होने के बाद, Drupal 8 कोर में मौजूदा Drupal 7 और 6 साइट्स को सीधे Drupal 8 में अपडेट करने के लिए Migrate मॉड्यूल भी शामिल है। प्रवासी को Drupal 8.0.0 में "प्रायोगिक" चिह्नित किया गया है, लेकिन आगामी रिलीज में पूरी तरह से समर्थित होगा। https://www.drupal.org/news/drupal-8.0.0-released

दृश्य के पीछे थोड़ा सा तकनीकी: 7 से 8 संस्करण से, वे उसी अवधारणा को रखते हैं जब साइट (जैसे नोड, इकाई, अनुमति, विचार ...) का निर्माण होता है, लेकिन कोर नहीं। मैं कहूंगा: उन्होंने ओओपी, सिम्फनी घटक, आर्किटेक्चर के लिए सब कुछ बदल दिया ... इसलिए upgradeसभ्य संस्करण से सीधे आपके ड्रुपल साइट का कोई रास्ता नहीं है 8.0, आपको करना होगा migrate। यहां बताया गया है कि migratingप्रक्रिया कैसे दिखनी चाहिए:

  1. अपनी d7 साइट पर समान कार्यक्षमता के साथ साइट को फिर से बनाएँ।
  2. थीम को फिर से बनाएँ (टहनी टेम्पलेट का उपयोग करके)
  3. सामग्री पर माइग्रेट करें

इस प्रक्रिया की लागत (दुर्भाग्य से) एक नई साइट या अधिक को फिर से बनाने के लिए समान है। नंबर 3 के साथ, चरण 2: https://www.phase2technology.com/blog/upmission-to-a-drupal-8-site/ इस लेख पर एक नज़र डालें


मैंने मैन्युअल रूप से Drupal 8 में एक पुनर्लेखन साइट का निर्माण शुरू कर दिया है ... यह वास्तव में अच्छा है कि मैंने D7 में उपयोग किए गए कई मॉड्यूल कोर में चले गए; मुझे उम्मीद है कि जब मैं Drupal 9 में माइग्रेट करूँगा, उस समय में, माइग्रेशन तकनीक एक ऐसी स्थिति में पहुँच जाएगी जहाँ यह अधिक आंशिक हो सकती है, विभिन्न संदर्भों में की गई है, नोड ऑन-पेज डेटा और मेटा डेटा, नोड पुनर्निर्देशन, फ़ाइलें, दृश्य, पैनलों, यह सब कुछ जितना संभव हो उतना खुद का है ... इस प्रक्रिया को अलग-अलग चरणों में विभाजित करना (जब भी आप चाहें प्रत्येक चरण से शुरू कर सकते हैं) कुछ ऐसा है जो मुझे आशा है ...

क्षमा करने के लिए क्षमा करें: मैंने अभी अपना उत्तर नीचे विशिष्ट विवरणों के साथ पोस्ट किया है, जो कि संभवतः सबसे अधिक हुआ है, कृपया देखें। इनाम निश्चित रूप से आपके साथ है।

2

आपका त्रुटि संदेश तार के साथ एक सटीक मिलान पर लाइन में निहित है http://cgit.drupalcode.org/migrate_upgrade/tree/src/MigrationCreationTrait.php#n40 की "Drupal नवीनीकरण" मॉड्यूल (कोड के भीतर /: https /www.drupal.org/project/migrate_upgrad )।

यह दर्शाता है कि यह एक बग नहीं है, बल्कि "अपवाद के रूप में फेंका जा रहा है" है। उस कोड की 3 पूर्ववर्ती लाइनों को देखते हुए, मुझे लगता है कि कनेक्शन स्थापित करने में केवल एक समस्या है।

शायद यह भी मदद करता है:

  • https://www.drupal.org/node/2628440 (टिप्पणी एनआर 3) मुद्दे से एक उद्धरण :

    यह देखने के लिए कि स्रोत डेटाबेस एक वैध ड्रुपल डेटाबेस है, और डेटाबेस के संस्करण को निर्धारित करने के लिए, अपग्रेड प्रक्रिया 'सिस्टम' टेबल पर दिखती है - क्या वह तालिका डेटाबेस में मौजूद है जो आप फॉर्म में निर्दिष्ट करते हैं? क्या उस डेटाबेस में ड्रुपल इंस्टॉलेशन उपसर्ग है (और यदि ऐसा है, तो क्या आपने "उन्नत विकल्प" फॉर्म का अनुभाग) में उपसर्ग दर्ज किया है? "।

  • उसी अंक में टिप्पणी nr 4 द्वारा अनुसरण किया गया: "तालिकाएँ उपसर्ग प्रदान करने से समस्या हल हो गई।"

और हां, बेंजी की टिप्पणी (आपको धन्यवाद!) भी वास्तविक त्रुटि के बारे में अधिक जानकारी प्राप्त करने में मदद करेगा जो आप में चल रहे हैं:

आप $ e-> getException () cgit.drupalcode.org/migrate_upgrad/tree/src/… यहां प्रिंट कर सकते हैं और फिर आप पीडीओ त्रुटि देखेंगे

आप लिंक के माध्यम से दिखाए गए कोड में 122 और 123 के बीच ऐसे प्रिंट जोड़ सकते हैं (अस्थायी)।


जैसा कि मैंने प्रश्न में उल्लेख किया है कि मुझे यह समझने के लिए PHP ज्ञान नहीं है कि उस विशाल PHP कोड से क्या समस्या है ... क्या आप कृपया प्रश्न को संपादित कर सकते हैं और सरल शब्दों में समझा सकते हैं कि वास्तव में यह "अपवाद क्या फेंका जा रहा है" और क्या है इसे संभालने के लिए कदम बढ़ाया? कृपया जितना हो सके उतना सरल, मैं बस PHP का स्वाद लेना शुरू कर रहा हूं।

@ लेबनोस इसका सीधा सा मतलब है कि आपकी माइग्रेट सेटिंग में बहुत संभवत: बहुत मामूली बात गलत है। एक टाइपो, एक गलत पासवर्ड, एक गलत यूआरएल। ऐसा कुछ।
लीमैनएक्स

@benos, आप $ e-> getException () cgit.drupalcode.org/migrate_upgrad/tree/src/… यहां प्रिंट कर सकते हैं और फिर आपको पीडीओ त्रुटि दिखाई देगी।
बेन्जी

@leymannx अगर मैंने 2 DB का स्थानीय रूप से निर्माण किया है (D8 के लिए D7 के लिए एक), केवल D7 में से एक के पास बिल्कुल वही विवरण होना चाहिए जिस ऑनलाइन साइट को मैं अपग्रेड करना चाहता हूं, है ना?

@leymannx मैंने सब कुछ फिर से बनाया है। स्थानीय D7 डेटा ऑनलाइन D7 साइट पर बिल्कुल समान है: साइट का फ़ोल्डर समान है; DB नाम और उपयोगकर्ता नाम समान हैं, और पासवर्ड समान हैं; मैंने उपसर्ग भी जोड़ा और यद्यपि सब कुछ होने के बावजूद मुझे वही त्रुटि मिल रही है।

0

जिस समय आप कोडबेस को {system} को छोड़ने के लिए बाध्य करते हैं, वह अगले डेटाबेस टेबल, {field_config_instance} को नहीं पाकर मर जाता है। दूसरे शब्दों में: यह आपके डी 7 डेटाबेस को नहीं पढ़ रहा है। शायद यह डी 8 को पढ़ने की कोशिश करता है, शायद कुछ और पूरी तरह से, हम कैसे जान सकते हैं? अधिक संभावना है कि आप गलत DB कॉन्फ़िगरेशन में प्रवेश कर रहे हैं (कहते हैं, दोनों साइटें अलग-अलग सर्वर पर हैं, जिसमें mysql सर्वर दोनों पर लोकलहोस्ट है लेकिन लोकलहोस्ट एक ही सर्वर नहीं है)। मैंने बस माइग्रेट अपग्रेड कॉन्ट्रिब मॉड्यूल और कोर माइग्रेट मॉड्यूल कोड दोनों की जांच की और यह बेहद आश्चर्यजनक था कि अगर कोई उपसर्ग से संबंधित बग होगा तो दोनों पूरे डेटाबेस सेटिंग्स सरणी को संभालते हैं, न कि टुकड़ा-दर-टुकड़ा।

यह कैसे ठीक करने के लिए अपने इन्फ्रा तक पहुँच के बिना यह कहना असंभव है। माफ़ करना। अगर मैं इसे बंद करने के लिए मतदान कर सकता था, लेकिन जब से वहाँ एक इनाम है, मैं नहीं कर सकता। हम आपकी मदद नहीं कर सकते हैं और यह सवाल दूसरों की मदद नहीं करेगा। एकमात्र संभव सहायता यह है: अपनी Drupal 7 सेटिंग्स फ़ाइल को पढ़ें और समझें और माइग्रेट अपग्रेड मॉड्यूल को सही क्रेडेंशियल्स दें (बड़ी मात्रा में टिप्पणियां पहले से ही दिखा रही हैं कि यह कहीं नहीं जा रहा है।)

एक लंबे समय तक संभव समाधान में कंट्रिब मॉड्यूल में एक सुविधा शामिल होगी जहां लोग अपनी सेटिंग्स अपलोड कर सकते हैं। एफपी और फिर हम इसका उपयोग करने का प्रयास कर सकते हैं। यह बेहद नाजुक है लेकिन मुझे लगता है कि एक शॉट के लायक है। जब किसी के पास इसे कोड करने का समय होगा ...

मुझे नहीं पता कि लोगों ने इस पर इतना जोर क्यों दिया। क्या किसी और को भी यही समस्या है?


0

मुझे यह पोस्ट किए बहुत समय बीत चुका है लेकिन मुझे लगता है कि मुझे अब पता है कि समस्या क्या थी:

मैंने 2-3 मॉड्यूल स्थापित किए, जो मैंने (तब) "इतने बुनियादी" होने के लिए सोचा था, इसलिए मुझे यकीन था कि उनके पास एक माइग्रेशन पथ है जैसे कि सभी मॉड्यूल हैं।

ये थे, अगर मुझे सही तरीके से याद है: मेटाटैग और रीडायरेक्ट (आप डी 7 ग्लोबलडायरेक्ट और रीडायरेक्ट से ड्रुपाल 8 में सिर्फ रीडायरेक्ट पर जाते हैं)।

न केवल मैंने इन्हें डी 7 साइट में छोड़ दिया, मैंने उन्हें डी 8 में भी स्थापित किया, इसलिए मेरी साइट के कोई भी संस्करण केवल कोर नहीं थे, आवश्यकतानुसार।

यह मेरा पहला प्रवास था और मैंने उस गलती को प्रोजेक्ट के लिए नए सिरे से किया। मैं वास्तव में आश्वस्त था कि "यह नहीं हो सकता" कि इन मॉड्यूलों में माइग्रेशन पथ नहीं होगा (और जब आप इसके बारे में सोचते हैं, तो उन्हें वास्तव में होना चाहिए), लेकिन तब मुझे पता चला कि वास्तव में, आमतौर पर केवल कोर मॉड्यूल और कुछ भी होता है और कोई कस्टम या कंट्रिब माइग्रेशन पथ होना चाहिए।

बस आपको पता है --- ये, और अन्य मॉड्यूल में कंट्रिब माइग्रेशन पथ हैं जिन्हें आप इस माइग्रेशन पथ के साथ पैच करके उपयोग कर सकते हैं (आप इसे पथ के साथ मॉड्यूल में "इंजेक्ट" करते हैं)।

वैसे भी, यह मेरे लिए वापस तो मामला नहीं था और मुझे यकीन था कि यह सिस्टम के साथ आता है ...

मैं दर्द से गलत था और यह मुझे एकमात्र कारण लगता है कि ऊपर का प्रवास विफल हो गया था; मैंने इस धारणा को एक छोटे से प्रयोग के साथ प्रबलित किया जो मैंने लगभग 2 महीने पहले अपने अंतिम सफल प्रवास से पहले किया था।


0

एक बार मुझे वह त्रुटि संदेश मिला। यह मेरे द्वारा "डुपाल_" द्वारा निर्धारित $ db_prefix सेट निकला। आपको इसे उन्नत विकल्पों में रखना चाहिए।

सादर, कार्लोस अलेमन

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