Schema migration
سافٹ ویئر انجینئرنگ میں، اسکیما ہجرت (ڈیٹا بیس منتقلی، ڈیٹا بیس تبدیلی کا انتظام بھی) سے مراد متعلقہ ڈیٹا بیس اسکیما میں ورژن کنٹرول، اضافی اور قابل واپسی تبدیلیوں کا انتظام ہے۔ جب بھی اس ڈیٹا بیس کے اسکیما کو کسی نئے یا پرانے ورژن میں اپ ڈیٹ کرنا یا واپس کرنا ضروری ہو تو ڈیٹا بیس پر اسکیما ہجرت کی جاتی ہے۔ ہجرت ایک اسکیما ہجرت ٹول کا استعمال کرتے ہوئے پروگرام کے طور پر انجام دی جاتی ہے۔ جب کسی مخصوص مطلوبہ اسکیما ورژن کے ساتھ استعمال کیا جاتا ہے، تو یہ ٹول اسکیما تبدیلیوں کے مناسب سلسلے کی مسلسل درخواست یا الٹ کو خودکار بناتا ہے جب تک کہ اسے مطلوبہ حالت میں نہ لایا جائے۔ زیادہ تر اسکیما مائیگریشن ٹولز کا مقصد ڈیٹا بیس میں موجود کسی بھی ڈیٹا پر اسکیما تبدیلیوں کے اثرات کو کم کرنا ہے۔ اس کے باوجود، عام طور پر ڈیٹا کے تحفظ کی ضمانت نہیں ہے کیونکہ اسکیما تبدیلیاں جیسے ڈیٹا بیس کالم کو حذف کرنا ڈیٹا کو تباہ کر سکتا ہے (یعنی۔ اس ٹیبل کی تمام قطاروں کے لیے اس کالم کے نیچے محفوظ کردہ تمام اقدار کو حذف کر دیا جاتا ہے)۔ اس کے بجائے، ٹولز ڈیٹا کے معنی کو محفوظ رکھنے یا نئی ضروریات کو پورا کرنے کے لیے موجودہ ڈیٹا کو دوبارہ منظم کرنے میں مدد کرتے ہیں۔ چونکہ اعداد و شمار کے معنی کو اکثر انکوڈ نہیں کیا جا سکتا، اس لیے ٹولز کی ترتیب میں عام طور پر دستی مداخلت کی ضرورت ہوتی ہے۔ خطرات اور فوائد اسکیما ہجرت غلطیوں کو ٹھیک کرنے اور ضروریات میں تبدیلی کے ساتھ ڈیٹا کو ڈھالنے کی اجازت دیتی ہے۔ وہ سافٹ ویئر ارتقاء کا ایک لازمی حصہ ہیں، خاص طور پر فرتیلی ماحول میں (نیچے دیکھیں)۔ پروڈکشن ڈیٹا بیس میں اسکیما منتقلی کا اطلاق ہمیشہ ایک خطرہ ہوتا ہے۔ ترقی اور جانچ کے ڈیٹا بیس چھوٹے اور صاف ہوتے ہیں۔ ان میں موجود ڈیٹا کو بہتر طریقے سے سمجھا جاتا ہے یا، اگر باقی سب کچھ ناکام ہو جاتا ہے، تو ڈیٹا کی مقدار اتنی کم ہوتی ہے کہ انسان اس پر عمل کر سکے۔ پروڈکشن ڈیٹا بیس عام طور پر بہت بڑے، پرانے اور حیرت سے بھرے ہوتے ہیں۔ حیرت بہت سے ذرائع سے آسکتی ہے: بدعنوان ڈیٹا جو سافٹ ویئر کے پرانے ورژنوں کے ذریعے لکھا گیا تھا اور صحیح طریقے سے صاف نہیں کیا گیا تھا، ڈیٹا میں انحصار کو ظاہر کرتا ہے جس کے بارے میں اب کوئی نہیں جانتا ہے۔ لوگ نامزد ٹولز کا استعمال کیے بغیر براہ راست ڈیٹا بیس کو تبدیل کرتے ہیں۔ اسکیما مائیگریشن ٹولز میں کیڑے ڈیٹا کو منتقل کرنے کے مفروضوں میں غلطیاں ان وجوہات کی بناء پر، مائیگریشن کے عمل کو اعلی سطح کے نظم و ضبط، مکمل جانچ اور ایک ٹھوس بیک اپ حکمت عملی کی ضرورت ہوتی ہے۔ اسکیما ہجرت کو مکمل ہونے میں کافی وقت لگ سکتا ہے اور 24/7 کو چلانے والے نظاموں کے لیے یہ ضروری ہے کہ وہ ڈاؤن ٹائم کے بغیر ڈیٹا بیس ہجرت کر سکیں۔ عام طور پر یہ فیچر فلیگ اور مسلسل ڈیلیوری کی مدد سے کیا جاتا ہے۔ فرتیلی سافٹ ویئر ڈویلپمنٹ میں اسکیما ہجرت ڈیٹا بیس کے تعاون سے سافٹ ویئر ایپلی کیشنز تیار کرتے وقت، ڈویلپرز عام طور پر ایپلی کیشن سورس کوڈ کو ایک تیار شدہ ڈیٹا بیس اسکیما کے ساتھ مل کر تیار کرتے ہیں۔ کوڈ میں عام طور پر سخت توقعات ہوتی ہیں کہ ڈیٹا بیس اسکیما میں کون سے کالم، میزیں اور رکاوٹیں موجود ہیں جب بھی اسے کسی کے ساتھ تعامل کرنے کی ضرورت ہوتی ہے، لہذا صرف ڈیٹا بیس اسکیما کا وہ ورژن جس کے خلاف کوڈ تیار کیا گیا تھا اسے سورس کوڈ کے اس ورژن کے ساتھ مکمل طور پر مطابقت رکھتا ہے۔ سافٹ ویئر ٹیسٹنگ میں، جب کہ ڈویلپرز یونٹ ٹیسٹنگ کے لیے ہم آہنگ ڈیٹا بیس سسٹم کی موجودگی کا مذاق اڑا سکتے ہیں، اس سے زیادہ ٹیسٹنگ کی کوئی بھی سطح (جیسے۔ انضمام کی جانچ یا نظام کی جانچ) ڈویلپرز کے لیے یہ عام بات ہے کہ وہ اپنی درخواست کو مقامی یا ریموٹ ٹیسٹ ڈیٹا بیس کے خلاف جانچتے ہیں جو جانچ کے تحت سورس کوڈ کے ورژن کے ساتھ اسکیم کے مطابق مطابقت رکھتا ہے۔ اعلی درجے کی ایپلی کیشنز میں، ہجرت خود ہجرت کی جانچ سے مشروط ہو سکتی ہے۔ اسکیما مائیگریشن ٹیکنالوجی کے ساتھ، ڈیٹا ماڈلز کو اب مکمل طور پر اپ فرنٹ ڈیزائن کرنے کی ضرورت نہیں ہے، اور سافٹ ویئر ڈویلپمنٹ لائف سائیکل میں پروجیکٹ کی ضروریات کو تبدیل کرنے کے ساتھ ڈھالنے کی زیادہ صلاحیت رکھتے ہیں۔ نظر ثانی شدہ کنٹرول سسٹم سے تعلق سافٹ ویئر ڈویلپرز کی ٹیمیں عام طور پر سورس کوڈ کے ورژن میں کی جانے والی تبدیلیوں کے انتظام اور تعاون کے لیے ورژن کنٹرول سسٹم کا استعمال کرتی ہیں۔ مختلف ڈویلپرز ترقی کے دوران تبدیلیاں اور اضافے کرنے کے لیے ایک ہی سورس کوڈ کی مختلف، نسبتا پرانی یا نئی شاخوں پر ترقی کر سکتے ہیں۔ فرض کریں کہ زیر ترقی سافٹ ویئر ڈیٹا بیس کے ساتھ تعامل کرتا ہے، سورس کوڈ کا ہر ورژن کم از کم ایک ڈیٹا بیس اسکیما کے ساتھ منسلک کیا جا سکتا ہے جس کے ساتھ یہ مطابقت رکھتا ہے۔ اچھے سافٹ ویئر ٹیسٹنگ پریکٹس کے تحت، اسکیما ہجرت ٹیسٹ ڈیٹا بیس پر انجام دی جا سکتی ہے تاکہ یہ یقینی بنایا جا سکے کہ ان کا اسکیما سورس کوڈ کے مطابق ہے۔ اس عمل کو ہموار کرنے کے لیے، ایک اسکیما مائیگریشن ٹول کو عام طور پر خودکار سافٹ ویئر کی تعمیر کے ایک حصے کے طور پر خودکار جانچ کے مرحلے کی شرط کے طور پر استعمال کیا جاتا ہے۔ اسکیما مائیگریشن ٹولز کو ڈیٹا بیس اسکیما کے لیے ورژننگ کے مسائل کو حل کرنے کے لیے کہا جا سکتا ہے جس طرح ورژن کنٹرول سسٹم سورس کوڈ کے لیے ورژننگ کے مسائل کو حل کرتے ہیں۔ عملی طور پر، بہت سے اسکیما مائیگریشن ٹولز دراصل اسکیما تبدیلیوں کی متن کی نمائندگی پر انحصار کرتے ہیں (جیسے کہ ایس کیو ایل بیانات پر مشتمل فائلیں) جیسے کہ اسکیما تبدیلیوں کی ورژن ہسٹری کو مؤثر طریقے سے وی سی ایس کے اندر پروگرام سورس کوڈ کے ساتھ محفوظ کیا جا سکتا ہے۔ یہ نقطہ نظر اس بات کو یقینی بناتا ہے کہ کسی خاص کوڈ برانچ کے لیے ہم آہنگ ڈیٹا بیس اسکیما کی بازیابی کے لیے ضروری معلومات خود سورس ٹری سے ہی بازیافت کی جا سکتی ہیں۔ اس نقطہ نظر کا ایک اور فائدہ بیک وقت متضاد اسکیما تبدیلیوں سے نمٹنا ہے۔ ڈویلپرز اختلافات کو حل کرنے کے لیے اپنے معمول کے متن پر مبنی تنازعات کے حل کے ٹولز کا استعمال کر سکتے ہیں۔ اسکیما ارتقاء سے تعلق اسکیما ہجرت ٹولنگ کو ایک ترقی پذیر اسکیما کی تاریخ کا سراغ لگانے کے لیے ایک سہولت کے طور پر دیکھا جا سکتا ہے۔ فوائد ڈویلپرز کو اب شروع سے نیا ٹیسٹ ڈیٹا بیس بنانے کے لیے پورے ٹیسٹ ڈیٹا بیس کو ہٹانے کی ضرورت نہیں ہے (جیسے۔ ڈی ڈی ایل جنریشن ٹولز سے اسکیما تخلیق سکرپٹ کا استعمال کرتے ہوئے)۔ مزید برآں، اگر ٹیسٹ ڈیٹا تیار کرنے میں بہت زیادہ وقت لگتا ہے، تو ڈویلپر اسکیما میں چھوٹی، غیر تباہ کن تبدیلیوں کے لیے ٹیسٹ ڈیٹا کو دوبارہ تیار کرنے سے بچ سکتے ہیں۔ حوالہ جات لنکس مارٹن فاؤلر: ارتقاء ڈیٹا بیس ڈیزائن فعال ریکارڈ ہجرت ڈیٹا بیس سافٹ ویئر کی دیکھ بھال فرتیلی سافٹ ویئر ڈویلپمنٹ