एसक्यूएल क्वेरी एक सरल खोज और बदलने के लिए क्या करती है


20

जब भी मैं एक नई वेबसाइट बनाता हूं तो मैं पहली बार "स्टेज.डोमेन-name.com" जैसे उपडोमेन पर एक स्टेजिंग साइट बनाता हूं।

सब कुछ सही ढंग से काम करने के बाद मैं डेटाबेस को निर्यात करता हूं, इसे नोटपैड ++ में खोलें और "सबडोमेन.डोमेन-name.com" के लिए एक खोज / प्रतिस्थापन करें और इसे "domain-name.com" के साथ बदलें ... आखिरकार मैं इसे एक नए में आयात करता हूं लाइव साइट के लिए डेटाबेस।

मेरा सवाल है ... अगर मैं सिर्फ इस साधारण खोज को करना चाहता / चाहती हूं तो phpmymmin का उपयोग करते हुए SQL SQL क्वेरी को मुझे चलाने की क्या आवश्यकता होगी?

-ch


यदि आप प्रश्नों से परिचित नहीं हैं, तो खोज और प्रतिस्थापन प्लगइन, wordpress.org/extend/plugins/search-and-replace
t31os

URL को अपडेट करने के लिए वर्डप्रेस कार्यक्षमता का उपयोग क्यों नहीं करते हैं? codex.wordpress.org/Moving_WordPress विवरण सब कुछ
एलेक्स पुराने

इसके लिए एक प्लगइन है। यह बैकएंड के आरामदायक उपयोग की अनुमति देता है और यदि आप चाहते हैं तो URL को पोस्ट-कंटेंट और कुछ अन्य फ़ील्ड्स में भी बदल देता है: wordpress.org/plugins/better-search-replace
simonthesorcerer

जवाबों:


13

वह तालिका जहाँ आपका URL सहेजा जाता है wp_options है। आपको अपनी साइट के URL का उपयोग करने वाले स्तंभों पर एक अपडेट करना चाहिए:

UPDATE TABLE wp_options SET option_value = "new domain" WHERE option_name = "siteurl"
UPDATE TABLE wp_options SET option_value = "new domain" WHERE option_name = "home"

मुझे कुछ मूल्य याद आ रहे हैं, लेकिन जब भी आप इस प्रक्रिया को फिर से खोज / प्रतिस्थापित करते हैं, तो आप उन मानों और तालिकाओं को नोटिस कर सकते हैं जिन्हें अपडेट किया जाना चाहिए और उन्हें इस स्क्रिप्ट में जोड़ना चाहिए।

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


1
क्या पूरे डेटाबेस पर एक खोज / प्रतिस्थापन करने का कोई तरीका नहीं है? दूसरे शब्दों में ... मैंने उदाहरण के लिए देखा कि मुझे मीडिया लाइब्रेरी सहित विभिन्न स्थानों के एक समूह में URL को बदलने की आवश्यकता है .... यदि आवश्यक रूप से हर क्षेत्र के लिए संपूर्ण डेटाबेस के लिए कोई खोज / प्रतिस्थापन था तो यह हल होगा समस्या। आपकी मदद के लिए धन्यवाद
NetConstructor.com

उत्तर पर मैंने जो नया लिंक जोड़ा है, उसकी जाँच करें। मुझे लगता है कि यह जाने का रास्ता होगा।
फर्नांडो ब्रेनानो

1
यह क्रमबद्ध डेटा के लिए काम नहीं करेगा। यह पूरी तरह से कुछ विषय विन्यास को तोड़ सकता है।
क्रिश्चियन Lescuyer

29

विकल्प, पोस्ट, पोस्ट सामग्री और पोस्ट मेटा करने के लिए सबसे अच्छा:

UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com') WHERE option_name = 'home' OR option_name = 'siteurl';

UPDATE wp_posts SET guid = replace(guid, 'http://olddomain.com','http://newdomain.com');

UPDATE wp_posts SET post_content = replace(post_content, 'http://olddomain.com', 'http://newdomain.com');

UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://olddomain.com', 'http://newdomain.com');

इसके अलावा phpMyAdmin और MySQL का उपयोग करके खोज डेटा देखें पैकट प्रकाशन। और Search RegEx एक अच्छा WP प्लगइन है जो सभी पोस्ट्स और पेजों के माध्यम से Grep को खोजने और बदलने में सक्षम है।

अद्यतन 6/16/2015: अगले वाक्य में लिंक किए गए टूल का उपयोग करना बेहतर है, क्योंकि डेटाबेस डंप में ऊपर की तरह एक साधारण खोज / प्रतिस्थापित धारावाहिक डेटा को तोड़ देगा। Interconnectit.com देखें WordPress सीरियलाइज्ड PHP सर्च रिप्लेसमेंट टूल। इस तरह, आप क्रमबद्ध डेटा को नहीं तोड़ते हैं और पोस्ट कंटेंट पर RegEx को चलाने की आवश्यकता नहीं होगी, क्योंकि इंटरकनेक्ट स्क्रिप्ट हर जगह यूआरएल बदल देती है। मैं उस टूल का उपयोग हर समय अलग-अलग डोमेन में साइटों को स्थानांतरित करने के लिए करता हूं, या एसएसएल से एचटीटीपी से वैश्विक परिवर्तन करने के लिए प्लगइन्स के बिना एसएसएल को मजबूर करने और असुरक्षित तत्व त्रुटियों को रोकने के लिए सामग्री में सभी यूआरएल को बदलने के लिए करता हूं।


2
कभी भी गाइड न बदलें - भले ही किसी नए डोमेन पर जा रहे हों। इसका उपयोग विशिष्ट रूप से आईडी को पोस्ट करने के लिए किया जाता है क्योंकि आईडी बदल सकते हैं यदि पदों को एक नए डेटाबेस में निर्यात / आयात किया जा रहा है। एक बात के लिए, RSS पाठक यह बताने के लिए GUID का उपयोग करेंगे कि क्या कोई विशेष लेख पढ़ा गया है या नहीं। गाइड को बदलना आपके सभी लेखों को प्रभावी रूप से पुनः प्रकाशित करेगा।
टेलर डेवी

@taylordewey ने कहा: "गाइड को कभी मत बदलो ..." बकवास।
चिह्नित करें

1
@songdogtech केयर यह समझाने के लिए कि यह बकवास क्यों है?
शी

1
किसी को GUID क्यों बदलना होगा?
kaiser

1
यह क्रमबद्ध डेटा के लिए काम नहीं करेगा। यह पूरी तरह से कुछ विषय विन्यास को तोड़ सकता है। दरअसल इंटरकनेक्ट / आईटी जैसे टूल का इस्तेमाल करें।
क्रिश्चियन Lescuyer

9

यह एक महान ड्रॉप-इन स्क्रिप्ट है जिसका मैं उपयोग करता हूं और यह क्रमबद्ध सरणियों के साथ खूबसूरती से काम करता है जो WP विकल्प स्टोर करने के लिए उपयोग करता है। बस यह सुनिश्चित करें कि आपके दूरस्थ सर्वर से इसे हटा दिया जाए क्योंकि यह एक बड़ा सुरक्षा जोखिम है।

https://interconnectit.com/products/search-and-replace-for-wordpress-databases/


2
मुझे नहीं पता कि मैं -1 क्यों था। यह स्क्रिप्ट SQL स्टेटमेंट से बहुत बेहतर है। कृपया प्रतिक्रिया दें?
लांसोनमोटोन

1
एक उपकरण जो लोग नहीं जानते हैं जो sql का उपयोग कर सकते हैं, उन लोगों को परेशान कर रहे हैं जो sql में लिखते हैं
जॉन

4

इसके लिए मैं WP-CLI का उपयोग करता हूं क्योंकि मुझे यह सबसे आसान लगता है और यह क्रमबद्ध डेटा का ध्यान रखता है।

wp search-replace 'http://example.dev' 'http://example.com' --skip-columns=guid

एक विकल्प भी है जो वास्तविक डेटाबेस में हेरफेर करने के बजाय SQL फ़ाइल में आपके परिवर्तन लिखता है:

wp search-replace foo bar --export=database.sql


अब तक सबसे मजबूत और सबसे तेज समाधान। wp-cli दिन को एक बार फिर से बचाता है
ryanrain

3

आपको ऐसा करने की आवश्यकता नहीं है, आप सापेक्ष रास्तों का उपयोग कर सकते हैं।

जब आप subdomain.soemthing.com/image.jpg के बजाय कुछ लिंक कर रहे हैं - उदाहरण के लिए /image.jpg का उपयोग करें

इस तरह आप पहली बार में समस्या का सामना नहीं करेंगे।

अन्यथा mysql अपडेट स्टेटमेंट के लिए आप उपयोग कर सकते हैं

update TABLE_NAME set FIELD_NAME = replace(FIELD_NAME, find this string’, replace found string with this string’);

धन्यवाद ... हाँ, मैं अगली बार ऐसा करूँगा। SQL कथन पूरे डेटाबेस (सभी तालिकाओं सहित) पर एक प्रतिस्थापन पाता है?
NetConstructor.com

@ NetConstructor.com SQL कथन mireille आपको ऊपर दिया गया था, विशिष्ट तालिका में किसी विशिष्ट फ़ील्ड में स्ट्रिंग को बदलने के लिए सामान्य MySQL कमांड है। यदि आपने इस कथन को ठीक वैसे ही चलाने का प्रयास किया जैसा कि लिखा गया था, तो यह काम नहीं करेगा। इस कमांड को काम करने के लिए, आपको TABLE_NAME & FIELD_NAME को एक वास्तविक फ़ील्ड और वर्डप्रेस द्वारा उपयोग की गई तालिका में बदलना होगा।
मंजरबार

यह भी ध्यान दें कि यदि आप सापेक्ष पथों का उपयोग करना चाहते हैं, तो भी Wordpress के बहुत से भाग पूर्ण पथों को स्वतः सम्मिलित करते हैं। वास्तव में इसे काम करने के लिए एक प्लगइन जैसे: wordpress.org/plugins/root-relative-urls बहुत, बहुत मददगार है
benz001

2

वर्डप्रेस डोमेन को बदलने के लिए जो हमें अक्सर चाहिए, वह साइट को लोकलहोस्ट से लाइव करने के लिए हो सकता है: यह अपडेट प्रश्नों की पूरी सूची है:

UPDATE wp_posts SET guid = replace(guid, 'http://olddomain.com','http://newdomain.com');
UPDATE wp_posts SET post_content = replace(post_content, 'http://olddomain.com', 'http://newdomain.com');
UPDATE wp_links SET link_url = replace(link_url, 'http://olddomain.com', 'http://newdomain.com');
UPDATE wp_links SET link_image = replace(link_image, 'http://olddomain.com', 'http://newdomain.com');
UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://olddomain.com', 'http://newdomain.com');
UPDATE wp_usermeta SET meta_value = replace(meta_value, 'http://olddomain.com', 'http://newdomain.com');

/*UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com') WHERE option_name = 'home' OR option_name = 'siteurl' OR option_name = 'widget_text' OR option_name = 'dashboard_widget_options';*/
UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com');
  • हमें अन्य तालिकाओं को भी जोड़ना होगा जो आवश्यक होने पर WP के साथ डिफ़ॉल्ट नहीं हैं।

अद्यतन: खोज बदलें डीबी संस्करण 3.1.0 डेवलपर्स के लिए एक उपयोगकर्ता के अनुकूल, फ्रंट-एंड टूल है, जो आपको डेटाबेस विस्तृत खोज / प्रतिस्थापन कार्यों को पूरा करने की अनुमति देता है, जो PHP के क्रमबद्ध तारों या वस्तुओं को नुकसान नहीं पहुंचाता है।


2
यह क्रमबद्ध डेटा के लिए काम नहीं करेगा। यह थीम कॉन्फ़िगरेशन को पूरी तरह से तोड़ सकता है।
क्रिश्चियन Lescuyer

-1

दरअसल, आपको अपनी थीम में wp_config और functions.php फाइल में सिर्फ कुछ समायोजन के लिए SQL क्वेरी का उपयोग करने की आवश्यकता नहीं है। इस विषय को Wordpress Codex में देखें: https://codex.wordpress.org/Changing_The_Site_URL


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