مهاجرت طرح واره
در مهندسی نرمافزار، مهاجرت طرح واره (همچنین مهاجرت پایگاه داده یا مدیریت تغییرات پایگاه داده) به مدیریت تغییرات تدریجی، کنترل نسخه شده و گاهی قابل بازگشت در طرح واره های پایگاه دادههای رابطهای اشاره دارد. مهاجرت طرح واره زمانی بر روی پایگاه داده انجام میشود که نیاز به بهروزرسانی یا بازگردانی طرح واره به نسخهای جدیدتر یا قدیمیتر باشد.
مهاجرتها به صورت برنامه ای با استفاده از یک ابزار مهاجرت طرح واره انجام میشوند. هنگامی که با نسخه طرح واره مورد نظر فراخوانی میشود، این ابزار به طور خودکار مجموعهای از تغییرات اسکیما را به ترتیب اجرا یا معکوس میکند تا پایگاه داده به وضعیت مورد نظر برسد.
بیشتر ابزارهای مهاجرت طرح واره سعی دارند تاثیر تغییرات طرح واره بر روی هر داده ی موجود در پایگاه داده را به حداقل برسانند. با این حال، حفظ دادهها به طور کلی تضمین نمیشود زیرا تغییرات طرح واره مانند حذف یک ستون پایگاه داده میتواند دادهها را از بین ببرد (یعنی تمام مقادیر ذخیره شده در آن ستون برای تمام سطرهای آن جدول حذف میشوند). به جای این، ابزارها کمک میکنند تا معنی دادهها حفظ شود یا دادههای موجود به نحوی دوباره سازماندهی شوند که نیازهای جدید را برطرف کنند. از آنجایی که معنی دادهها اغلب قابل کدگذاری نیست، پیکربندی ابزارها معمولاً نیاز به مداخله دستی دارند.
ریسکها و مزایا
[ویرایش]مهاجرت طرح واره اجازه میدهد اشتباهات تصحیح شوند و دادهها با تغییر نیازها سازگار شوند. آنها بخش ضروری از تکامل نرمافزار هستند، بهویژه در محیطهای چابک.
اجرای مهاجرت طرح واره بر روی یک پایگاه داده محصولی همیشه یک ریسک است. پایگاههای داده توسعه و آزمایش معمولاً کوچکتر و سالم تر هستند. دادهها در این پایگاهها بهتر درک میشوند یا اگر همه چیز دیگر شکست بخورد، مقدار دادهها به قدری کم است که یک انسان میتواند آن را پردازش کند. پایگاههای داده محصولی معمولاً عظیم، قدیمی و پر از قافل گیری هستند. قافل گیری ها میتوانند از منابع مختلفی بیایند:
- دادههای فاسد که توسط نسخههای قدیمی نرمافزار نوشته شده و به درستی پاک نشدهاند - وابستگیهای ضمنی در دادهها که دیگر کسی از آنها خبر ندارد - تغییرات مستقیم مردم در پایگاه داده بدون استفاده از ابزارهای تعیینشده - ایرادها در ابزارهای مهاجرت طرح واره - اشتباهات در فرضیات درباره اینکه چگونه داده باید مهاجرت داده شود
به همین دلایل، فرایند مهاجرت نیاز به سطح بالایی از نظم، آزمایشهای کامل و یک استراتژی پشتیبانگیری قوی دارد.