নতুন কন্টেন্ট না হারিয়ে আমি কীভাবে সাইটের ডেভলপমেন্ট কপি থেকে লাইভ সাইটে পরিবর্তনগুলি মার্জ করব?


40

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


2
বিভ্রান্তি দূর করুন: মার্জ এবং মাইগ্রেট করা দুটি পৃথক শব্দ। আপনি আপনার প্রশ্নের উভয় ব্যবহার করেছেন। যদি লাইভ সাইটটি ফাঁকা থাকে তবে আপনাকে লাইভ সাইট / হোস্টে বিকাশের অনুলিপি স্থানান্তর করতে হবে। যদি লাইভ সাইটে ইতিমধ্যে সামগ্রী থাকে তবে বিকাশের অনুলিপি থেকে লাইভ সাইটে নতুন সামগ্রীগুলি মার্জ করতে হবে (মার্জ করা কিছুটা কঠিন)। তোমার কি করা উচিত?
ব্যবহারকারী 931

উত্তর:


16

ডেভ ডাটাবেস কোডে রফতানি করতে বৈশিষ্ট্যগুলি ব্যবহার করে ডেভ সাইটটিতে সামগ্রীর ধরণ, দর্শন এবং কাঠামো পরিবর্তনের জন্য।

সামগ্রী স্থানান্তরের জন্য অনেকগুলি বিকল্প রয়েছে, তবে একটিমাত্র কঠিন সমাধান নয়। একটি উদাহরণ ডিপ্লোয়মেন্ট স্যুট


ডেপয়মেন্ট স্যুটটি অবশ্যই স্পষ্টভাবে আকর্ষণীয় দেখায় যদিও এটি এখনও দেবের মধ্যে রয়েছে (এখনও একটি বিটাও নয়)। আপনি নিজে এটি ব্যবহার করেছেন? আপনি কি জানেন যে এটি আবরণ করবে না?
চৌলকি

2

আমি এখানে মূলত দুটি বিদ্যালয়কেই গ্রহণ করেছি (একটি তৃতীয় বিদ্যালয়, ডাটাবেস পৃথক করে, আমি আলোচনা করব না কারণ জটিলতা বেশ বেশি) quite

1) উত্পাদন ডেটাবেস বাদ দিয়ে এবং ডেভেলপমেন্ট ডেটাবেসটির একটি মাইএসকিলডাম্প আমদানি করে মোতায়েন করুন। Ptionচ্ছিকভাবে, এসকিউএল ডাম্পের ডেভেল ইউআরএল উল্লেখ করে এমন কোনও হার্ড-কোডেড পরম লিঙ্কগুলিতে আগে থেকে একটি রেজেক্স সন্ধান করুন / প্রতিস্থাপন করুন। দেব ডিবি প্রোডে আমদানির পরে স্বয়ংক্রিয়ভাবে এসকিউএল স্টেটমেন্টগুলি চালান (সাধারণত স্ক্রিপ্টের মাধ্যমে) পরে দেবের চেয়ে আলাদা যে কোনও সেটিংস পরিবর্তন করতে (উদাহরণস্বরূপ, আপনার ভেরিয়েবল টেবিলের মধ্যে বহির্বিন্যাসের সাথে সংযোগ স্থাপনের জন্য কিছু সংযোগ সেটিংস থাকতে হবে যা আপনার প্রয়োজন দেব সংস্করণের পরিবর্তে প্রোড বাইরের সিস্টেমে বিন্দুতে পরিবর্তন করুন)।

২) অ্যাডমিন সেটিংসের জন্য বুদ্দা উল্লিখিত বৈশিষ্ট্যগুলি মডিউলটি ব্যবহার করুন এবং মুছুন সমস্ত মডিউলটির সাথে মিলিয়ে সামগ্রী রফতানি / আমদানির জন্য নোড এক্সপোর্ট মডিউলটি ব্যবহার করুন । সুতরাং কর্মপ্রবাহটি হ'ল:

  1. ফাইলগুলিতে নোড / বৈশিষ্ট্য রফতানি করতে নোড_এক্সপোর্ট এবং বৈশিষ্ট্যগুলি ব্যবহার করুন
  2. Ptionচ্ছিকভাবে (এবং আশাকরি) সংস্করণ নিয়ন্ত্রণ
  3. প্রোড সিস্টেমে ফাইলগুলি লোড করুন
  4. বৈশিষ্ট্যগুলি লোড করতে ড্রশ বা অ্যাডমিন ইন্টারফেস ব্যবহার করুন
  5. আপনি যে ধরণের আমদানি করতে চান তার সমস্ত নোড মুছতে ড্রশ মুছুন-সমস্ত বা অ্যাডমিন ইন্টারফেস ব্যবহার করুন
  6. আপনার রফতানি করা নোড ফাইল থেকে নোডগুলি আমদানি করতে ড্রশ নে-আমদানি বা অ্যাডমিন ইন্টারফেস ব্যবহার করুন।

একটি নোট, আমি অত্যন্ত একটি স্ট্যান্ডার্ড ওয়ার্কফ্লো গ্রহণ করার পরামর্শ দেব, যেখানে সামগ্রী কেবল এক দিকে চলে। হয় দেব -> প্রোড বা প্রোড -> দেব (আমি এটিকে পছন্দ করি)।

আমি এটি করেছি এবং মোটামুটি ভাল ফলাফল সহ কিছু বড় সিস্টেমে এটি করছি, তবে এই অ্যাপলটি কাটানোর জন্য সবসময় অনেকগুলি উপায় থাকবে, যে কোনও উপায়ে আপনার পক্ষে সবচেয়ে ভাল কাজ করে তা চয়ন করুন।


বিকল্প 1-এ, আপনি কীভাবে লাইভ সাইটে যুক্ত করা হয়েছে এমন সামগ্রীটি পুনরায় তৈরি করছেন যা ডেভ সাইটটিতে নেই? দেখে মনে হচ্ছে আপনি এই সমস্ত কিছু ডিভ ডিবি দিয়ে ওভাররাইট করছেন এবং তারপরে সম্ভবত কিছু সেটিংস / ভেরিয়েবল পরিবর্তন করা হচ্ছে। এছাড়াও, আপনি বর্তমানে আপনার সাইটগুলিতে কোন বিদ্যালয়টি ব্যবহার করছেন? প্রতিটি পদ্ধতির কোনও উপকারিতা এবং বিরোধিতা?
চৌলকি

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

1

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


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