Relaunch 4.2 utf8mb4 डेटाबेस अपग्रेड


14

मैंने WP को 4.2 पर अपडेट किया, जबकि यह एक पुराने सर्वर पर था, जो utf8mb4 अपग्रेड आवश्यकताओं से मेल नहीं खाता ।

मैं एक अन्य सर्वर में चला गया जो इन आवश्यकताओं को फिट करता है, लेकिन WP इस डेटाबेस अपग्रेड को अब लॉन्च नहीं करेगा: /wp-admin/upgrad.php कहते हैं Your WordPress database is already up-to-date। मैंने अपनी wp_postतालिका को मैन्युअल रूप से utf8mb4 पर सेट करने का प्रयास किया, लेकिन मेरे सभी विशेष वर्ण "set" बन गए।

maybe_convert_table_to_utf8mb4अपने सभी विशेष वर्णों को खोए बिना, एक सरल उन्नयन में मजबूर करने का कोई तरीका ?

धन्यवाद!

जवाबों:


5

मुझे लगता है कि अभी आपके प्रश्न का उत्तर "नहीं" है।

maybe_convert_table_to_utf8mb4उन साइटों पर ट्रिगर करने का कोई आसान तरीका नहीं है जब वे पहले से ही WP 4.3 से परे एक सर्वर पर अपग्रेड किए गए थे जो इस पोस्ट में रखी गई आवश्यकताओं को पूरा नहीं करते हैं:

https://make.wordpress.org/core/2015/04/02/the-utf8mb4-upgrade/

ध्यान दें कि, WP स्रोत कोड को देखने के आधार पर, ऐसा लगता है कि उन्होंने इसे 4.2 के अपडेट अनुक्रम से 4.3 में स्थानांतरित कर दिया है (यह अब 4.2 में मौजूद नहीं है, जिसमें अब कोई उन्नयन नहीं है), शायद बोर्ड पर अधिक उपयोगकर्ता प्राप्त करने की उम्मीद है।

तो यह आपका उत्तर है और यह बेकार है लेकिन दूसरों की तुलना में अधिक सटीक है ツ_ (_) _ / it

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

हमारी मूल योजना वास्तविक db भाग को निकालने upgrade_430(), db अद्यतन प्रणाली से अलग करने, और इसे मैन्युअल रूप से ट्रिगर करने की है।

संपादित करें: समाधान नीचे

हालांकि स्क्रिप्ट को ट्रिगर करने का कोई आसान तरीका नहीं है, यहाँ पर एक हाथ से कोडेड वर्कअराउंड है, upgrade_430()लेकिन एक ड्रॉप-इन के रूप में डिज़ाइन किया गया है।

https://gist.github.com/carlalexander/4106cfaaf405cec454ba195631bcb6bc

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

जब आप यात्रा करते हैं तो यह स्वचालित रूप से ट्रिगर होने के लिए सेट है https://yoursite.com/?update-utf8bm4=1

यह सुनिश्चित करता है कि यह केवल एक बार चलता है और आपको यह चुनने के लिए मिलता है कि (बड़े डेटाबेस के लिए कुछ समय लग सकता है और आप किसी को पोस्ट करते समय संपादन करना नहीं चाहते हैं)।

यदि आप GET ट्रिगर नहीं करना चाहते हैं तो केवल add_actionभाग और भाग को हटा दें if (!isset($_GET['update-utf8bm4']))

फिर से: इस संकलन को पूरा करें, आप इस तरह से झूठ बोलना छोड़ना नहीं चाहते हैं :)


2

बेशक, अगर बिना कहे चला जाता है, तो कुछ भी प्रयास करने से पहले डेटाबेस का बैकअप बना लें, लेकिन आप डेटाबेस के मूल संस्करण के साथ काम करेंगे- मैं दो चीजों की कोशिश करूंगा: वर्डप्रेस डेटाबेस की मरम्मत और रखरखाव, और phpMyAdmin के ऑप्टिमाइज़ टेबल:

यह इस पृष्ठ से आया है, जिसमें बहुत सारी जानकारी है WP नॉलेजबेस , लेकिन आप इस लाइन को अपनी साइट के wp-config.php में जोड़कर शुरू करते हैं:

define('WP_ALLOW_REPAIR', true);

इसके बाद http://yoursite.com/wp-admin/maint/repair.php पर जाएं

आपको दो विकल्पों के साथ एक पृष्ठ देखना चाहिए: 'मरम्मत डेटाबेस' और 'मरम्मत और अनुकूलन डेटाबेस।'

'रिपेयर एंड ऑप्टिमाइज़ डेटाबेस' पर क्लिक करें और स्क्रिप्ट को चलाने का समय दें। एक बार जब वे सफलतापूर्वक चले गए, तो आपको अपडेट संदेश मिलेंगे जिससे आप विभिन्न तालिकाओं की स्थिति जान सकते हैं।

जैसे ही यह चला है, बहुत महत्वपूर्ण है , wp_allow_repair लाइन को अभी हटाएं जिसे आपने wp-config.php में जोड़ा है, इसे wp-config.php फ़ाइल से हटा दें।

यदि वह काम नहीं करता है, तो आप phpMyAdmin की तालिका अनुकूलन की कोशिश कर सकते हैं, लेकिन यदि वर्डप्रेस ने मदद नहीं की, तो वह भी नहीं हो सकती। मैं इसे डेटाबेस के उसी संस्करण पर आज़माता हूँ जिस पर आपने अंतिम मरम्मत की थी।

PhpMyAdmin में जाएं, अपने डेटाबेस का चयन करें, पृष्ठ के निचले भाग तक स्क्रॉल करें, डेटाबेस में सभी तालिकाओं का चयन करने के लिए 'सभी की जांच करें', फिर उसके बगल में स्थित चयन मेनू से "ऑप्टिमाइज़ टेबल" चुनें। बस, यह अपने आप शुरू हो जाएगा।

यहां अधिक विवरण और स्क्रीनशॉट हैं: WPMUDev

यदि वे दो चरण अकेले या एक साथ काम नहीं करते हैं - तो आप उन्हें रिवर्स ऑर्डर में चलाने के लिए अपने बैकअप डेटाबेस की एक और प्रति का उपयोग करने का प्रयास कर सकते हैं ... शुभकामनाएँ!


1
'मरम्मत और अनुकूलन डेटाबेस' करता है। relaunch maybe_convert_table_to_utf8mb4(जैसे कोई WP अद्यतन करता है)? आपने उस उत्तर का उल्लेख नहीं किया;)
जोन

हाय जोन, ओवरसाइट के लिए खेद है ... मैंने नोटों में इसका कोई विशेष उल्लेख नहीं देखा है, नहीं, लेकिन अनुमान लगाएगा कि यह तब तक हो सकता है जब तक आप वर्डप्रेस 4.2+ में ऑप्टिमाइज़ेशन चला रहे थे। मुख्य नोटों से: [ make.wordpress.org/core/tag/wpdb/]
वेनेसा किंग

सभी UTF8 टेबल थे और मरम्मत और अनुकूलन को चलाया। उन्हें utf8mb4 में परिवर्तित नहीं किया। इसके अलावा तालिकाओं कि MyIsam नहीं थे, लेकिन InnoDB और पहले से ही utf8mb4 मरम्मत या अनुकूलित नहीं थे।
खंड

हाँ, यह प्रश्न के उत्तर के लिए खेद नहीं है।
jerclarke

0

क्या आपने डेटाबेस तालिका Collation को बदलने का प्रयास किया है? कृपया इसे आज़माएँ:

Phpmyadmin के लिए लॉगिन करें> अपने डेटाबेस का चयन करें> संचालन> अब Collation को ड्रॉप-डाउन से "utf8mb4_unicode_ci" में बदलें या अपने पुराने सर्वर पर उपयोग किए गए को बदलें।

मुझे उम्मीद है कि यह आपके लिए काम करेगा।

स्क्रीनशॉट देखें: http://prntscr.com/8ip1ro/direct

याद रखें: यदि आप अपने पुराने सर्वर से अपने पीसी में sql फ़ाइल निर्यात करते हैं और इसे किसी भी टेक्स्ट एडिटर के साथ खोलते हैं ... और कस्टमाइज़ करें और सहेजें .. तो कृपया चेक करें जब आप sql फाइल को बचाते हैं टेक्स्ट एडिटर "एन्कोडिंग" Utf-8 है । मेरा स्क्रीनशॉट देखें: http://prntscr.com/8ip2nr/direct

धन्यवाद


यह वही है जो मैंने कोशिश की (भी) जैसे कि मैं फ़ंक्शन लॉन्च कर रहा था, उसी परिणाम (I हर जगह)। WP फ़ंक्शन को आसानी से रिलॉन्च करने का तरीका खोज रहे हैं ...
Joan
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.