একটি সাধারণ অনুসন্ধান এবং প্রতিস্থাপন কী করতে এসকিউএল ক্যোয়ারী


20

আমি যখনই কোনও নতুন ওয়েবসাইট তৈরি করি আমি প্রথমে একটি সাবডোমাইনে "মঞ্চ.ডোমেন- নাম ডটকম" এর মতো একটি স্টেজিং সাইট তৈরি করি।

সবকিছু সঠিকভাবে কাজ করার পরে আমি ডাটাবেস রফতানি করি, এটি নোটপ্যাড ++ এ খুলি এবং "subdomain.domain-name.com" এর জন্য একটি সন্ধান / প্রতিস্থাপন করব এবং এটিকে "ডোমেইন-নাম.কম" দিয়ে প্রতিস্থাপন করব ... অবশেষে আমি এটিকে একটি নতুনতে আমদানি করি লাইভ সাইটের জন্য ডাটাবেস।

আমার প্রশ্ন হ'ল phpmyadmin ব্যবহার করে যদি আমি এই সহজ অনুসন্ধান / প্রতিস্থাপনটি পুরো ডাটাবেসটিতে করতে চাইতাম তবে এসকিউএল কোয়েরিটি চালানোর দরকার কী?

-সিএইচ


আপনি যদি প্রশ্নের সাথে পরিচিত না হন তবে অনুসন্ধান এবং প্রতিস্থাপন প্লাগইনটি চেষ্টা করুন, wordpress.org/extend/plugins/search-and-replace
t31os

ইউআরএল আপডেট করতে ওয়ার্ডপ্রেস কার্যকারিতা কেন ব্যবহার করবেন না? কোডেক্স.ওয়ার্ডপ্রেস.আর. / মুভিং_ওয়ার্ডপ্রেস সবকিছু বিবরণ দেয়
অ্যালেক্স

এর জন্য একটি প্লাগইন রয়েছে। এটি ব্যাকএন্ডের আরামদায়ক ব্যবহারের অনুমতি দেয় এবং পোস্ট-সামগ্রী এবং কিছু অন্যান্য ক্ষেত্রে ইউআরএল প্রতিস্থাপন করে, আপনি যদি চান: wordpress.org/plugins/better-search-replace
simonthesorcerer

উত্তর:


13

আপনার ইউআরএল সংরক্ষণ করা সারণীটি হ'ল 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"

আমি কিছু মান অনুপস্থিত হতে পারে তবে আপনি যখনই এটি পুনরায় সন্ধান / প্রতিস্থাপন প্রক্রিয়াটি করেন তখন আপনি যে মানগুলি এবং সারণীগুলি আপডেট করা উচিত তা লক্ষ্য করতে পারেন এবং সেগুলি এই স্ক্রিপ্টে যুক্ত করতে পারেন।

কোনও সাইটের ইউআরএল কীভাবে পরিবর্তন করা যায় সে সম্পর্কে ওয়ার্ডপ্রেস কোডেক্সের একটি দুর্দান্ত গাইড রয়েছে, সম্ভবত এটি আপনার জন্য এমনকি হ্যান্ডিয়ার: সাইটের ইউআরএল পরিবর্তন করা


1
পুরো ডাটাবেসে অনুসন্ধান / প্রতিস্থাপন করার কোনও উপায় নেই? অন্য কথায় ... আমি লক্ষ করেছি যে আমি মিডিয়া লাইব্রেরি সহ বিভিন্ন অবস্থানের একগুচ্ছ ইউআরএলগুলি প্রতিস্থাপন করতে হবে .... যদি প্রতিটি ক্ষেত্রের জন্য মূল ডাটাবেসের জন্য কোনও অনুসন্ধান / প্রতিস্থাপন থাকে তবে এটি সমাধান করবে সমস্যাটি. আপনার সহায়তার জন্য ধন্যবাদ
নেটকন্সট্রাক্টর.কম

উত্তরে আমি যুক্ত হওয়া নতুন লিঙ্কটি দেখুন Check আমার মনে হয় সেই পথ চলবে।
ফার্নান্দো ব্রায়ানোও

1
এটি সিরিয়ালযুক্ত ডেটার জন্য কাজ করবে না। এটি কিছু থিম কনফিগারেশন পুরোপুরি ভেঙে দিতে পারে।
ক্রিশ্চান লেসকুইয়ার

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 ব্যবহার করে ডেটা অনুসন্ধান করা দেখুন প্যাক্ট প্রকাশনা। এবং অনুসন্ধান রেজিএক্স একটি ভাল ডাব্লুপি প্লাগইন যা সমস্ত পোস্ট এবং পৃষ্ঠাগুলির মাধ্যমে গ্রেপ দিয়ে অনুসন্ধান করতে এবং প্রতিস্থাপন করতে সক্ষম।

6/16/2015 আপডেট করুন: পরবর্তী বাক্যটিতে সংযুক্ত সরঞ্জামটি ব্যবহার করা আরও ভাল, কারণ একটি ডাটাবেস ডাম্পের উপরের মতো একটি সহজ সন্ধান / প্রতিস্থাপন সিরিয়ালযুক্ত ডেটা ভেঙে দেবে। আন্তঃসংযোগ ডট কম দেখুন ওয়ার্ডপ্রেস সিরিয়ালাইজড পিএইচপি অনুসন্ধান প্রতিস্থাপন সরঞ্জাম। এইভাবে, আপনি সিরিয়ালযুক্ত ডেটা ভাঙ্গবেন না এবং আন্তঃসংযোগ স্ক্রিপ্টের সর্বত্র ইউআরএল পরিবর্তিত হওয়ার কারণে পোস্ট সামগ্রীতে RegEx চালানোর দরকার পড়বে না। সাইটটি বিভিন্ন ডোমেনে স্থানান্তরিত করতে, বা অনিরাপদ উপাদান ত্রুটি রোধ করতে কোনও প্লাগইন ছাড়াই এসএসএলকে বাধ্য করার জন্য এবং সামগ্রীগুলিতে সমস্ত ইউআরএল পরিবর্তনের জন্য HTTP থেকে https তে একটি বিশ্বব্যাপী পরিবর্তন করার জন্য আমি সেই সরঞ্জামটি সর্বদা ব্যবহার করি।


2
কোনও নতুন ডোমেনে চলে গেলেও - গাইডলাইনটি কখনও পরিবর্তন করবেন না। পোস্টগুলিকে কোনও নতুন ডাটাবেসে রফতানি / আমদানি করা হচ্ছে যদি আইডিটি পরিবর্তন করতে পারে তবে এটি পোস্টটিকে অনন্যভাবে আইডিতে ব্যবহার করতে ব্যবহৃত হয়। একটি জিনিসের জন্য, আরএসএস পাঠকরা জিইউডি ব্যবহার করবেন কোনও নির্দিষ্ট নিবন্ধ পড়েছে কিনা তা জানাতে। গাইড পরিবর্তন করা আপনার কার্যকরভাবে সমস্ত নিবন্ধ পুনঃপ্রকাশ করবে।
টেলর দেই

@ টেলর্ডিওয়ে বলেছেন: "গাইড কখনও বদলাবেন না ..." আবর্জনা।
18

1
@ সাংডোগটেক কেন এটি আবর্জনা বোঝানোর জন্য যত্ন ?
shea

1
কেন একজন হবে আছে GUID পরিবর্তন করবেন?
কায়সার

1
এটি সিরিয়ালযুক্ত ডেটার জন্য কাজ করবে না। এটি কিছু থিম কনফিগারেশন পুরোপুরি ভেঙে দিতে পারে। প্রকৃতপক্ষে একটি সরঞ্জাম যেমন ইন্টারকানেক্ট / আইটি এর ব্যবহার করুন।
ক্রিশ্চান লেসকুইয়ার

9

এটি আমি ব্যবহার করি এটি একটি দুর্দান্ত ড্রপ-ইন স্ক্রিপ্ট এবং এটি বিকল্পগুলি সঞ্চয় করার জন্য ডাব্লুপি ব্যবহার করে এমন সিরিয়ালযুক্ত অ্যারেগুলির সাথে সুন্দরভাবে কাজ করে। এটি সম্পন্ন করার পরে এটি আপনার দূরবর্তী সার্ভার থেকে মুছে ফেলার বিষয়টি নিশ্চিত করুন কারণ এটি একটি বিশাল সুরক্ষা ঝুঁকি।

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


2
আমি কেন জানি না -1। এই স্ক্রিপ্টটি এসকিউএল স্টেটমেন্টের চেয়ে অনেক ভাল। প্রতিক্রিয়া দয়া করে?
ল্যানসমনোটোন

1
এমন একটি সরঞ্জাম যা লোকেরা sql ব্যবহার করতে পারে না তা জানায়, যারা স্ক্যুচেলে লেখেন তাদের মন খারাপ করছে
জন

4

এর জন্য আমি ডাব্লুপি-সিএলআই ব্যবহার করি কারণ আমি এটি সবচেয়ে সহজ খুঁজে পাই এবং এটি সিরিয়ালযুক্ত ডেটার যত্ন নেয়।

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

এমন একটি বিকল্প রয়েছে যা আসল ডাটাবেসটি পরিবর্তনের পরিবর্তে কোনও এসকিউএল ফাইলে আপনার পরিবর্তনগুলি লিখে দেয়:

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


এখন পর্যন্ত সবচেয়ে শক্তিশালী এবং দ্রুত সমাধান
ডব্লিউপি

3

আপনার এটি করতে হবে না, আপনি আপেক্ষিক পাথ ব্যবহার করতে পারেন।

আপনি যখন সাবডোমেন.সোমথিং / আইমেজ.জেপজি এর পরিবর্তে কোনও কিছুর সাথে লিঙ্ক করছেন - উদাহরণস্বরূপ /image.jpg ব্যবহার করুন

এই মত আপনি প্রথম জায়গায় সমস্যার সম্মুখীন হবে না।

অন্যথায় আপনি একটি mysql আপডেট বিবৃতি ব্যবহার করতে পারেন

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

ধন্যবাদ ... হ্যাঁ আমি পরের বার এটি করব। এসকিউএল স্টেটমেন্টটি পুরো ডাটাবেসে (সমস্ত টেবিল সহ) প্রতিস্থাপন খুঁজে পাবে?
নেটকন্সট্রাক্টর.কম

@ নেটকনস্ট্রাক্টর.কম এসকিউএল বিবৃতি মাইরাইল আপনাকে উপরে একটি নির্দিষ্ট সারণীতে একটি নির্দিষ্ট ক্ষেত্রে একটি স্ট্রিং প্রতিস্থাপনের জন্য জেনেরিক মাইএসকিউএল কমান্ড দিয়েছে। আপনি যদি এই বিবৃতিটি ঠিক যেমনটি লিখেছিলেন চালানোর চেষ্টা করেন, এটি কার্যকর হবে না। এই কমান্ডটি কাজ করার জন্য, আপনাকে TABLE_NAME এবং FIELD_NAME কে একটি বাস্তব ক্ষেত্র এবং ওয়ার্ডপ্রেস দ্বারা ব্যবহৃত টেবিলে পরিবর্তন করতে হবে।
মানজাবর

এছাড়াও লক্ষ করুন যে আপনি আপেক্ষিক পাথগুলি ব্যবহার করতে চান, এমনকি ওয়ার্ডপ্রেসের অনেকগুলি অংশ পুরো পথগুলিকে স্বয়ংক্রিয়ভাবে সন্নিবেশ করায়। সত্যিই এটির মতো একটি প্লাগইন কাজ করার জন্য: 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');
  • আমাদের অন্যান্য টেবিলগুলিও যুক্ত করতে হবে যা প্রয়োজনে ডাব্লুপি-র সাথে ডিফল্ট নয়।

আপডেট: অনুসন্ধান রিপ্লেস ডিবি সংস্করণ ৩.১.০ হ'ল ডেভেলপারদের জন্য ব্যবহারকারী-বান্ধব, ফ্রন্ট-এন্ড সরঞ্জাম, এটি আপনাকে পিএইচপি সিরিয়ালযুক্ত স্ট্রিং বা অবজেক্টগুলির ক্ষতি না করে এমন ডাটাবেস প্রশস্ত অনুসন্ধান / প্রতিস্থাপনের ক্রিয়া চালিয়ে যায়।


2
এটি সিরিয়ালযুক্ত ডেটার জন্য কাজ করবে না। এটি থিম কনফিগারেশন পুরোপুরি ভঙ্গ করতে পারে।
খ্রিস্টান লেসকুইয়ার

-1

আসলে, আপনাকে আপনার থিমের wp_config এবং ফাংশন.এফপি ফাইলটিতে কেবলমাত্র কিছু এসকিউএল কোয়েরি ব্যবহার করতে হবে না। ওয়ার্ডপ্রেস কোডেক্সে এই বিষয়টি দেখুন: https://codex.wordpress.org/ পরিবর্তন_ই_সাইট_ URL


1
এটি সঠিক নয়। ওয়ার্ডপ্রেস দুর্ভাগ্যক্রমে পাঠ্য হিসাবে ডাটাবেসে কিছু ইউআরএল সংরক্ষণ করে।
s_ha_dum
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.