مفهوم و فرایند Schema Versioning
زمان مطالعه 1 دقیقه
۱۸ آبان ۱۴۰۰
نویسنده پایدار سامانه
تعداد کامنت 0

مفهوم نسخه بندی اسکیما یا Schema Versioning

نسخه بندی طرح واره دیتابیس یا Schema Versioning مفهوم جذابی است که در صورت رعایت نیازماندی ها و پیاده سازی خوب می تواند بسیار کارساز و مفید باشد، روشی است که تغییرات ساختاری اسکیمای دیتابیس را نگهداری می کند و امکان بازگشت به نسخه های پیشین را در دیتابیس برای شما فراهم خواهد کرد به کونه ای که بدون از دست دادن دیتا شما بتوانید به هر یک از نسخه های قبلی و یا بعدی تغییر داشته باشید و تمامی نسخه ها همیشه در دسترس باشند.

البته همیشه به این زیبایی نیست چون شما در نسخه ها مخلتف ممکن است امکاناتی در اختیار داشته باشید که در نسخه های پیشین موجود نبودند، پس تغییر به نسخه های پیشین مسلتزم حذف برخی از ساختار ها و حتی داده ها باشد. بعنوان مثال ممکن است فیلدی در دیتابیس اضافه کرده باشید برا نگهداری تاریخ درج یک رکورد که در صورت بازگشت به نسخه های پیشین هم این فیلد را از دست خواهید داد و تمامی اطلاعات مربوط به درج رکورد حذف خواهد شد.

اسکیما در دیتابیس
اسکیما در دیتابیس

انوع مدل های Schema Versioning

در طول عمر و انجام Schema versioning سه حالت کلی ممکن است بوجود بیاید که جزء قرارداد ها و کنوانسیون های تغییر نسخه محسوب می شود:

MAJOR

شامل شکست ساختار (breaking schema) و تغییر داده ها (data changes) می شود که با آخرین نسخه کد های موجود ناسازگار است. مانند:

  • حذف کردن یک فیلد
  • حذف کردن یک جدول
  • تغییر نام ستون
  • کم کردن سایز یک ستون (ممکن است دیتا از دست داده شود)
  • تبدیل فیلد از String به CLOB، جایی که فیلد دارای سوابق زیادی است یا در DISTINCT یا GROUP BY استفاده شده باشد

MINOR

شامل تغییر ساختار و تغییر داده ها می باشد و در این حالت تغییر با آخرین نسخه کد موجود سازگار است. تغییرات معمولاً شامل پشتیبانی از قابلیت های جدید است. مانند:

  • اضافه کردن یک فیلد جدید
  • اضافه کردن یک جدول جدید

MICRO

شامل تغییرات ساختار و تغییر داده است بصورتی که با آخرین نسخه کد موجود سازگاری کامل دارد و هیچ تغییری احساس نمی شود. مانند:

  • تغییر سایز یک فیلد و در جهت بیشتر کردن فضای ذخیره سازی مثلا تغییر طول VARCHAR 100 به VARCHAR 1000
  • ایندکس گذاری بر روی یک ستون
  • تبدیل فیلد از String به CLOB، به شرطی که فیلد دارای سوابق کمی داشته باشد و در DISTINCT یا GROUP BY استفاده نشده باشد

اشتراک گذاری در شبکه های اجتماعی

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *