ডেভ এবং প্রোডের মধ্যে ওয়ার্ডপ্রেস ডাটাবেস সিঙ্ক


19

দুটি ওয়ার্ডপ্রেস ইনস্টলেশনের মধ্যে ফাইলের পাশাপাশি ডাটাবেস কীভাবে সিঙ্ক্রোনাইজ করা যায় সে সম্পর্কে প্রশ্ন আগে জিজ্ঞাসা করা হয়েছিল।

ডাটাবেস স্তরের জন্য উত্তরটি সাধারণত একটি ডাটাবেস ডাম্প করে অন্য সার্ভারে ontoোকানো হয়। এটির সাথে সমস্যাটি হ'ল প্রোড সার্ভারে সম্ভাব্য যে কোনও পরিবর্তন হয়েছে তা আপনি হারিয়ে ফেলেন। উদাহরণস্বরূপ, ব্যবহারের মেট্রিক্স, মন্তব্যসমূহ ইত্যাদি ...

এটি মাথায় রেখেই আমি ভাবতে শুরু করেছিলাম যে ওয়ার্ডপ্রেস ওআরএম প্রসারিত করা সম্ভব হবে যাতে আপনি ডেল্টাস তৈরি করতে পারেন এবং সেগুলি প্রোড সাইটে ইনজেক্ট করতে পারেন।

কেউ কি এটি চেষ্টা করেছে, এটি সন্ধান করেছে, বা কোনও ধারণা বা মন্তব্য আছে?


1
আমি এটি দেখেছি, হ্যাঁ, তবে খুব বেশি কিছু করতে পারেনি। আপনি যদি অন্য কোনও সিএমএস প্ল্যাটফর্মের সাথে একটি প্রুফ-অফ-কনসেপ্টের দিকে ইঙ্গিত করতে পারেন তবে আমি নিশ্চিত যে আমরা এটি ওয়ার্ডপ্রেসের জন্য আবার নতুন করে তুলতে পারি।
EAMAN

প্রতিলিপি সম্পর্কে?
কোভসেনিন

মাইএসকিএল সহ ভাল প্রতিলিপিটির জন্য মাস্টার-মাস্টার প্রতিরূপের কিছু ফর্ম দরকার যা পিটা IT আপনি যদি এই বিষয়টিকে ফ্যাক্ট করে থাকেন যে এটি ডেভ এবং প্রোডের মধ্যে রয়েছে, তবে প্রতিলিপিটি বিলম্বিত হতে হবে যা সম্ভবত সর্বদা বিরতিতে পারে।
জোনাথনসরাফিনী

উত্তর:


11

বাস্তবতা হ'ল আমরা যা চাই তা হ'ল: http://www.liquibase.org/

লিকুইবেস একটি ওপেন সোর্স (অ্যাপাচি ২.০ লাইসেন্সযুক্ত), ডাটাবেস পরিবর্তনগুলি ট্র্যাকিং, পরিচালনা ও প্রয়োগের জন্য ডাটাবেস-স্বতন্ত্র গ্রন্থাগার। এটি একটি সাধারণ ভিত্তিতে তৈরি করা হয়েছে: সমস্ত ডাটাবেস পরিবর্তনগুলি মানব পঠনযোগ্য তবে ট্র্যাকযোগ্য ফর্মায় সংরক্ষণ করা হয় এবং উত্স নিয়ন্ত্রণে চেক করা হয়।

তবে আমাদের উন্নয়ন প্রক্রিয়া এটি সমর্থন করে না। আমরা সাধারণত নিজেরাই লিখতে থাকি না এমন আলাদা স্ক্রিপ্টগুলির মাধ্যমে আমরা ডাটাবেসটি সংশোধন করি না, আমরা যেগুলি প্লাগইনগুলি সক্রিয় করি তা ব্যবহার করি। এরপরে আমরা সোর্স কোড কন্ট্রোলটি যাচাই করে লুকআপ ডেটা পরিবর্তন করতে ডিএমএল স্ক্রিপ্টগুলি লিখি না, আমরা অ্যাডমিন পৃষ্ঠায় একটি ইউআই ব্যবহার করি এবং তাই মাইগ্রেশন চলাকালীন সেই পরিবর্তনের প্রতিরূপে পরবর্তী ব্যবহারের জন্য কোনও উত্স কোড নেই।

তবে, আমরা এর কয়েকটি অনুকরণ করতে পারি - এই পৃষ্ঠায় তালিকাভুক্ত কয়েকটি সরঞ্জাম ব্যবহার করে:

/programming//q/225772/149060

উদাহরণস্বরূপ, লিকুইডবেসে একটি পৃথক বৈশিষ্ট্য রয়েছে যা optionচ্ছিকভাবে ডেটা পরিবর্তনগুলিও অন্তর্ভুক্ত করে। আমরা সম্ভাব্যভাবে স্কিমা এবং ডেটা আলাদা করে কোনও স্ক্রিপ্টের আউটপুট দিতে পারি (পরীক্ষার ডেটা (যেমন পোস্ট ইত্যাদি) অন্তর্ভুক্ত করার সম্ভাব্য কিছু সারণী বাদ দিয়ে এবং তারপর উত্পাদন ডেটাবেসে স্ক্রিপ্টটি প্রয়োগ করতে পারে)।

MySQLDiff (Stackoverflow প্রশ্নে আলোচনা) স্কিমা diffs করে, এবং এটি লেখক বিশেষ পরামর্শ দেওয়া হচ্ছে mysql_coldiff সারণীর-জ্ঞানী তথ্য diffs জন্য - উভয়, পার্ল বাস্তবায়িত হলে জাভা সরঞ্জাম (liquidbase) খুব আপনার সার্ভারের জন্য রিসোর্স ভারী হবে - যদিও উভয় ডাটাবেস স্থানীয় আনা এবং আপনার পিসিতে সরঞ্জাম চালনা সেই সমস্যার সমাধান করে ...

আমরা যদি সত্যিই এটি সঠিকভাবে করতে চাই, আমাদের সেটিংস, বিকল্পগুলি বা অন্যান্য কনফিগারেশন পরিবর্তনগুলি এবং কোনও স্কিমা পরিবর্তনের সাথে সম্পর্কিত যে কোনও এসকিএল লগ করা উচিত - এবং আমাদের প্রোডাকশন সার্ভারের বিপরীতে খেলতে লগড কোডটিকে মাইগ্রেশন স্ক্রিপ্টে রূপান্তর করতে হবে। সার্ভারের বিরুদ্ধে মাইগ্রেশন স্ক্রিপ্ট খেলুন, ওয়ার্ডপ্রেস সাইট ফাইলগুলি (প্রযোজ্য ক্ষেত্রে আপলোডগুলি বাদ দিয়ে) অনুলিপি করুন এবং আমরা সোনার।

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

আমরা যদি অনুপ্রেরণার জন্য @ বেল্টজের ইন্সট্রুমেন্টিং হুক কল প্লাগইনের কোডটি দেখি: https://gist.github.com/1000143 (র্যাভ রেনিককে জি + এর মাধ্যমে আমাকে SAVEQUERIES এবং শটডাউন হুকের দিকে নির্দেশ করার জন্য ধন্যবাদ জানাই যে, আমাকে এটি সন্ধান করতে নেতৃত্ব দিন)

- পরিবর্তে SAVEQUERIES আউটপুট পেতে এটি পরিবর্তন করুন 
- শুধুমাত্র প্রশাসক থাকাকালীন চালান 
- সমস্ত নির্বাচন ফিল্টার 
- শাটডাউন হুকের টেবিলে ফলাফলগুলি সংরক্ষণ করুন 
- আমরা এই মুহুর্তে যা করছিলাম তার ভিত্তিতে আমরা আউটপুট ট্র্যাপিংকে বেছে বেছে টগল করতে পারি।  

উদাহরণ স্বরূপ:

ক্যাপচারের নাম: প্লাগইন এক্সওয়াইজেড সক্রিয় ও কনফিগার করুন

স্টেট টগল ক্যাপচার করুন - চালু

... প্লাগইন এক্সওয়াইজেড ইনস্টল এবং কনফিগার করুন

স্টেট টগল ক্যাপচার করুন - বন্ধ

এক্সপোর্ট মাইগ্রেশন স্ক্রিপ্ট: প্লাগইন এক্সওয়াইজেড সক্রিয় ও কনফিগার করুন

ফিল্টারড আটকা পড়া এসকিউএল সহ একটি পপআপ পাঠ্য ক্ষেত্র তৈরি করতে এক্সপোর্ট বাটন টিপুন - আদর্শভাবে mysql তে কমান্ড-লাইন কল সহ শেল স্ক্রিপ্ট হিসাবে প্রাক-ফর্ম্যাট করা। আপনার মাইগ্রেশন কোড ফোল্ডারে এটি অনুলিপি করুন এবং আটকান এবং আপনার উত্স কোড ভাণ্ডারে যুক্ত করুন।

আপনি যখন কাজ করছেন তেমন ক্যাপচারটি টগল করার দিকে মনোযোগ সহকারে মনোযোগ দিন এবং আপনি আপনার স্টেজিং ডেটাবেজে আপনার প্রোডাকশন ডেটাবেসটিকে একটি সমমানের কনফিগারেশনে নিয়ে যাওয়ার জন্য নিখুঁত মাইগ্রেশন স্ক্রিপ্ট তৈরি করতে সক্ষম হবেন।

আরও ভাল, আপনি পরীক্ষা করতে পারেন এমন একটি স্ক্রিপ্ট (বা এরই ধারাবাহিক) থাকবে। প্রতিচ্ছবি, পরীক্ষাযোগ্য, মাইগ্রেশন স্ক্রিপ্টগুলি থাকা ইমেজিং !!

আমি ইতিমধ্যে প্রেমে আছি

অন্য কেউ?


2
ভাল লেখার। আমি এই সমস্যার জন্য প্রচুর সময় ব্যয় করেছি কারণ আমার ক্লায়েন্টরা আমাদের সহায়তা এটির সন্ধান করেছে। এটি একটি সত্যিই কঠিন সমস্যা, তবে আমরা সিদ্ধান্ত নিয়েছি যে এসকিউএল এর স্তরে নেমে যাওয়া সম্ভবত "সমুদ্রকে ফোটান" সমাধানের অনেক বেশি অর্থ, এটির 100% কাজ করার সম্ভাবনা কমই। আমি মনে করি যে সমাধানটি স্পষ্ট কোড সহ "বিভাজন এবং বিজয়" পদ্ধতির ব্যবহার করছে যা ওয়ার্ডপ্রেসের কাঠামো বোঝে এবং অন্য যে কোনও কিছুর জন্য হুক সরবরাহ করে। আমি আশা করি আমরা ভবিষ্যতে কোনও পর্যায়ে একটি কার্যকর সমাধান জনসমক্ষে উপস্থাপন করতে পারি।
মাইকচিন্কেল

তো .... কে এটি বানাতে চায়?
ডেভ কিস


3

ডাটাবেজ সিঙ্ক ওয়ার্ডপ্রেস প্লাগইন দুই সার্ভার মধ্যে ডেটা সিঙ্ক একটি মহান পেশা আছে।

ডিফল্টরূপে এটি সমস্ত গন্তব্য ডেটা ওভাররাইট করে, তবে আমি সবেমাত্র প্লাগইনে কিছু বর্ধিতকরণ প্রয়োগ করেছি যা আপনাকে কেবল নির্দিষ্ট ডাটাবেস টেবিলগুলি সিঙ্ক করার অনুমতি দেয়। এটি আপনাকে মন্তব্য, ব্যবহারকারী এবং এই জাতীয় ডেটা ধরে রাখতে সহায়তা করতে পারে যা আপনি ওভাররাইট করতে চান না। এটি কি আপনাকে প্রয়োজনীয় গ্রানুলারিটি দেয়?

আমি এখনও আমার পরিবর্তনগুলি জনসাধারণের কাছে প্রকাশ করি নি, তবে আপনি যদি অনুলিপি করতে আগ্রহী হন তবে আমাকে সাইমন-at-yump.com.au এ একটি ইমেল প্রেরণ করুন। যদি কারও কাছে এটি দরকারী মনে হয় বা অতিরিক্ত বৈশিষ্ট্যগুলির অনুরোধগুলি রয়েছে, আমাকে জানান এবং আমি কী করতে পারি তা দেখতে পাবো।


আপডেট: আমি সবেমাত্র ডাব্লুপি-সিঙ্ক-ডিবি প্লাগইনটি পেয়েছি , যা বাণিজ্যিক ডাব্লুপি-মাইগ্রেট-ডিবি-প্রো প্লাগইনের একটি কাঁটাচামচ । এটি একটি খুব অনুরূপ কাজ করে, যদিও সম্ভবত ডেটাবেস সিঙ্কের চেয়ে বেশি পোলিশ রয়েছে ।


0

এই কাজের জন্য বিশেষত একটি অপেক্ষাকৃত নতুন বাণিজ্যিক পরিষেবা রয়েছে। একে র‌্যাম্প বলা হয়:

http://alexking.org/blog/2011/07/20/ramp-content-deploy-wordpress


1
সেই পরিষেবাটির সীমাবদ্ধতা রয়েছে যা এটি আমার ব্যবহারের ক্ষেত্রে ফিট করে না:
মারফারমা

2
আমার ব্যবহারের কেস - উত্পাদন কন্টেন্ট যোগ করার সময় কার্যকারিতা যুক্ত করে। উক্তি: "নিম্নলিখিত আইটেমগুলি বর্তমানে অসমর্থিত: সেটিংস (কোর এবং প্লাগইন সেটিংস, যদি না তারা র‌্যাম্পের বিকল্প বেছে নেয়)" থিম এবং প্লাগইন বিকল্পগুলির 99.99% এবং সেটিংস স্থানান্তরিত হবে না। উত্পাদনে কোড পরিবর্তন ছাড়াই কাস্টম পোস্ট-প্রকারগুলি স্থানান্তরিত হবে না। কাস্টম টেবিল এবং তাদের ডেটা যুক্ত করার বিষয়ে ভুলে যান।
মারফারমা

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