हटाए गए फ़ील्ड को पुनर्प्राप्त करें


11

मेरे पास 4 फ़ील्ड्स के साथ एक सामग्री-प्रकार है, जिनमें से प्रत्येक एक शब्द संदर्भ है। प्रत्येक 100 नोड्स हैं जिन्हें 4 निर्दिष्ट संदर्भ दिए गए हैं। मैंने व्यवस्थापक> संरचना> सामग्री-प्रकार> mycontent- प्रकार ... से इन क्षेत्रों में से एक को गलती से हटा दिया है ... जिसके परिणामस्वरूप सभी 100 नोड्स इस खोए हुए क्षेत्र को शब्द संदर्भ खो देते हैं।

डेटाबेस व्यवस्थापक मॉड्यूल को स्थापित करने के बाद मैं देख सकता था कि मेरे हटाए गए क्षेत्र के लिए डेटाबेस अभी भी मौजूद था, इसे "फ़ील्ड_डलेटेड_फ़ील्ड_74" की तरह कुछ नाम दिया गया था।

  1. Mysql का उपयोग करके मैं इस डेटाबेस का नाम बदलकर "field_data_field_originalname" करने में सक्षम हूं - अर्थात हटाए गए फ़ील्ड के लिए मूल मशीन नाम का उपयोग करना
  2. इसके अलावा मैं इस डेटाबेस के अंदर हटाए गए कॉलम के मान को '1' से '0' में बदलने में सक्षम हूं।

मैंने उपरोक्त अन्य 'घोस्ट' डेटाबेस के साथ किया है जो मुझे मिला था जिसे "field_revision_field_74" की तरह कुछ कहा गया था ...

अब मेरी समस्या यह है कि मेरा नाम बदला हुआ फ़ील्ड मेरे सामग्री-प्रकार के फ़ील्ड प्रदर्शनों पर न तो पहले से मौजूद फ़ील्ड के रूप में दिखाई दे रहा है और न ही व्यवस्थापक> रिपोर्ट> फ़ील्ड सूची में। जब मैं 'ड्रश फील्ड-इंफॉर्मेशन फील्ड' चलाता हूं तो यह भी गायब है।

मैं इसे कैसे वापस लाऊं? मैं मान रहा हूं कि एक और डेटाबेस है जो इसे संदर्भित करता है जिसे मुझे संपादित करने की आवश्यकता है।

धन्यवाद!


क्या आपके पास फ़ील्ड हटाने से पहले पूरे डेटाबेस का कोई बैकअप है?
ओली

दुर्भाग्य से नहीं। मैंने हालांकि समस्या का समाधान किया।
इयान मैटलैंड

जवाबों:


14

एक अच्छा सवाल है, और आश्चर्य की बात यह है कि हटाए गए फ़ील्ड को रोलबैक करने का एक आसान तरीका नहीं है, यह देखते हुए कि डेटा अभी भी उपलब्ध है।

आपके पास यह मानते हुए:

  1. Field_deleted_ * का नाम बदलकर फ़ील्ड_data_field_myfield और field_revision_field_myfield (बाद में भी महत्वपूर्ण)
  2. संबंधित डेटा तालिकाओं में 'हटाए गए' ध्वज को 1 से 0 तक अपडेट किया।

वहाँ भी

  • field_config

मुख्य क्षेत्र विन्यास

  • field_config_instance

किसी विशेष इकाई बंडल पर फ़ील्ड कॉन्फ़िगरेशन।

आपको वहां 'हटाए गए' झंडे को भी समायोजित करने की आवश्यकता हो सकती है:

उदाहरण के लिए:

UPDATE field_config SET deleted = 0 where field_name = 'field_my_deleted_field';
UPDATE field_config_instance SET deleted = 0 where field_name = 'field_my_deleted_field';
TRUNCATE TABLE cache_field;

2
जल्दी उत्तर देने के लिए धन्यवाद। दोनों फ़ील्ड_कॉन्फ़िग और field_config_instance डेटाबेस को संपादित करने का काम किया।
इयान मैटलैंड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.