জ্যাঙ্গো মাইগ্রেশন ডকুমেন্টেশন থেকে উদ্ধৃত :
প্রতিটি অ্যাপ্লিকেশনের জন্য স্থানান্তরকারী ফাইলগুলি সেই অ্যাপ্লিকেশনটির অভ্যন্তরে একটি "মাইগ্রেশন" ডিরেক্টরিতে থাকে এবং এর কোডবেজটির অংশ হিসাবে প্রতিশ্রুতিবদ্ধ এবং বিতরণ করার জন্য ডিজাইন করা হয়। আপনার একবার আপনার বিকাশ মেশিনে এগুলি তৈরি করা উচিত এবং তারপরে আপনার সহকর্মীদের মেশিনে, আপনার স্টেজিং মেশিনগুলিতে এবং শেষ পর্যন্ত আপনার উত্পাদন মেশিনে একই স্থানান্তর চালানো উচিত।
আপনি যদি এই প্রক্রিয়াটি অনুসরণ করেন তবে মাইগ্রেশন ফাইলগুলিতে আপনার কোনও মার্জ দ্বন্দ্ব হওয়া উচিত নয়।
সংস্করণ নিয়ন্ত্রণ শাখাগুলি মার্জ করার সময়, আপনি এখনও এমন পরিস্থিতির মুখোমুখি হতে পারেন যেখানে একই প্যারেন্ট মাইগ্রেশনের উপর ভিত্তি করে আপনার একাধিক মাইগ্রেশন রয়েছে, উদাহরণস্বরূপ যদি বিভিন্ন বিকাশকারী একসাথে একটি স্থানান্তর প্রবর্তন করেন। এই পরিস্থিতি সমাধানের একটি উপায় হ'ল _ নিমজ্জন_প্রবাস_কে পরিচয় করানো। কমান্ড দিয়ে প্রায়শই এটি স্বয়ংক্রিয়ভাবে করা যায়
./manage.py makemigrations --merge
যা একটি নতুন স্থানান্তর প্রবর্তন করবে যা বর্তমানের সমস্ত প্রধান স্থানান্তরের উপর নির্ভর করে। অবশ্যই এটি কেবল তখনই কাজ করে যখন প্রধান স্থানান্তরগুলির মধ্যে কোনও বিরোধ নেই, সেই ক্ষেত্রে আপনাকে ম্যানুয়ালি সমস্যার সমাধান করতে হবে।
এখানে কিছু জনকে সুপারিশ যে আপনি দেওয়া উচিত নয় সংস্করণ নিয়ন্ত্রণ আপনার মাইগ্রেশন কমিট, আমি কেন আপনি আসলে প্রসারিত করতে চাই উচিত , তাই না।
প্রথমত, আপনার উত্পাদন সিস্টেমগুলিতে প্রয়োগ করা মাইগ্রেশনগুলির একটি রেকর্ড আপনার প্রয়োজন। আপনি যদি উত্পাদনে পরিবর্তন স্থাপন করেন এবং ডাটাবেস স্থানান্তর করতে চান তবে আপনার বর্তমান অবস্থার বিবরণ প্রয়োজন। আপনি প্রতিটি প্রোডাকশন ডাটাবেসে মাইগ্রেশনগুলির পৃথক ব্যাকআপ তৈরি করতে পারেন তবে এটি অযথা জটিল মনে হয়।
দ্বিতীয়ত, মাইগ্রেশনগুলিতে প্রায়শই কাস্টম, হস্তাক্ষর কোড থাকে। এগুলি দিয়ে স্বয়ংক্রিয়ভাবে উত্পন্ন করা সর্বদা সম্ভব নয় ./manage.py makemigrations।
তৃতীয়ত, মাইগ্রেশনগুলি কোড পর্যালোচনাতে অন্তর্ভুক্ত করা উচিত। এগুলি আপনার উত্পাদন ব্যবস্থায় উল্লেখযোগ্য পরিবর্তন এবং এগুলির সাথে ভুল হতে পারে এমন অনেকগুলি জিনিস রয়েছে।
সংক্ষেপে, আপনি যদি নিজের উত্পাদন ডেটার বিষয়ে যত্নশীল হন তবে দয়া করে আপনার স্থানান্তরগুলি সংস্করণ নিয়ন্ত্রণে পরীক্ষা করুন।
makemigrations some_appকোনও সদস্য অভিনয় করেন তবে কেবলমাত্র সেই সদস্যের নিয়ন্ত্রণাধীন মডেলগুলিই ক্ষতিগ্রস্থ হবে না, তবে অন্যান্য সম্পর্কিত মডেলগুলিও প্রভাবিত হবে। এটি হ'ল, অন্যান্য অ্যাপ্লিকেশনে স্থানান্তর ফাইলগুলি (00 * _ *) পরিবর্তন করা হবে। এবং এটি গিটহাব থেকে চাপ দেওয়া বা টানার সময় অনেক বিবাদ সংক্রান্ত সমস্যার সৃষ্টি করে। যেহেতু বর্তমানে আমাদের সিস্টেম উত্পাদনের জন্য প্রস্তুত নয়, আমরা কেবল.gitignoreস্থানান্তর ফাইল। সিস্টেমটি উত্পাদন করতে গেলে কীভাবে সমাধান করা যায় তা আমরা এখনও জানি না। কারও কি কোন সমাধান আছে?