د ډیټا مهاجرت سیسټمونو پرتله کول او انتخاب

د ډیټا مهاجرت سیسټمونو پرتله کول او انتخاب

د ډیټا مهاجرت سیسټمونو پرتله کول او انتخاب

د ډیټا ماډل د پراختیا پروسې په جریان کې بدلون ته اړتیا لري، او په ځینو وختونو کې دا نور د ډیټابیس سره مطابقت نلري. البته، ډیټابیس حذف کیدی شي، او بیا به ORM یو نوی نسخه رامینځته کړي چې د ماډل سره سمون ولري، مګر دا کړنلاره به د موجوده معلوماتو له لاسه ورکولو المل شي. پدې توګه ، د مهاجرت سیسټم دنده دا ده چې ډاډ ترلاسه کړي چې د سکیما بدلون په پایله کې ، دا د موجوده ډیټا له لاسه ورکولو پرته په غوښتنلیک کې د ډیټا ماډل سره همغږي کیږي.

پدې مقاله کې، موږ غواړو د ډیټابیس مهاجرت اداره کولو لپاره مختلف وسایل وګورو. موږ امید لرو چې دا بیاکتنه به د پراختیا کونکو لپاره ګټور وي چې ورته انتخاب سره مخ دي.

موخه

زموږ شرکت اوس مهال په فعاله توګه د راتلونکي نسل محصول تولیدوي - د Docs Security Suite (DSS). د سرور برخه په .Net Core کې لیکل شوې، او د ادارې چوکاټ کور د DBMS په توګه کارول کیږي. کله چې یو غوښتنلیک ډیزاین کړئ، موږ د کوډ لومړۍ طریقه کاروو.

د غوښتنلیک ډومین ماډل په ورته وخت کې د ډیری پراختیا کونکو لخوا رامینځته شوی - هر یو د سیسټم د خپل منطقي برخې لپاره مسؤل دی.

د DSS پخوانی نسل د کلاسیک وجود چوکاټ مهاجرت (EF 6) د مهاجرت مدیریت سیسټم په توګه کارولی. په هرصورت، ځینې شکایتونه د دې په وړاندې راټول شوي، چې اصلي یې دا دی چې EF د نسخې شخړو د حل لپاره د سالم چلند نه لري. دا حقیقت لاهم موږ ته خپه کوي کله چې د ملاتړ برخې په توګه د بګ فکس کول ، نو موږ پریکړه وکړه چې بدیل اختیارونه په پام کې ونیسو.

د بحث په پایله کې، د مهاجرت مدیریت سیسټم لپاره لاندې اړتیاوې رامینځته شوې:

  1. د مختلف DBMSs لپاره ملاتړ. د MS SQL سرور، PostgreSQL، Oracle اړین دي، مګر دا د نورو کارولو لپاره احتمالي امکان لري
  2. د ORM سره کار کول. په پیل کې، دا پالن شوی و چې د EF کور کارولو لپاره، مګر د ډیزاین په مرحله کې موږ چمتو یو چې نور ORMs په پام کې ونیسو.
  3. د مهاجرت اتومات نسل. د لومړي کوډ پراختیا په پام کې نیولو سره، زه غواړم د "لاسي لیکلو" مهاجرت اړتیا څخه مخنیوی وکړم
  4. نسخه شخړه. په ویشل شوي پراختیایي چاپیریال کې، کله چې یوځای کیږي، د EF کور کولی شي د شخړو سره مخ شي. دا د پام وړ ستونزه کیږي ځکه چې د غوښتنلیک مختلف برخې د مختلف پراختیا کونکو لخوا رامینځته شوي ، نو تاسو باید په هر یو کې ډیر وخت مصرف کړئ.
  5. پرمختللي اسناد او ملاتړ. دلته، موږ ته داسې ښکاري چې هیڅ وضاحت ته اړتیا نشته
  6. وړيا. معیار مشروط دی ، ځکه چې سیسټمونه خورا ګران یا ګران ندي ، مګر په اسانتیا کې مثالي دي ، موږ هم غور کولو ته چمتو یو.

د لږې څیړنې په پایله کې، لاندې اختیارونه وموندل شول او د غور لپاره د پام وړ وموندل شول:

  1. د EF اصلي مهاجرتونه
  2. د ‏‎DBup‎‏ پاڼې اړوند نور معلومات په فسبوک کې اوګورئ
  3. RoundhouseE
  4. ThinkingHome.مهاجر
  5. روان مهاجر

او اوس یو څه نور تفصیل

د ډیټا مهاجرت سیسټمونو پرتله کول او انتخاب
د ادارې چوکاټ اصلي مهاجرتونه

په طبیعي توګه، دا د غوره کولو لپاره لومړی او اصلي انتخاب و. یو اصلي وسیله چې د بکس څخه بهر کار کوي پرته له دې چې د تیمبورین شاوخوا شاوخوا ګرځي. د اسنادو لوی مقدار، رسمي او داسې نه، سادگي، او داسې نور. په هرصورت، د کلاسیک EF په اړه شوي شکایتونه د EF کور لپاره هم خورا اړین دي.

په دې توګه، د EF کور ګټې په ګوته شوي:

  • د مایکروسافټ ملاتړ، اسناد، په شمول په روسیه کې، لویه ټولنه
  • د کوډ فرسټ پراساس د مهاجرت اتومات تولید
  • د EF 6 په پرتله، د EF کور نور د ډیټابیس سنیپ شاټ نه ذخیره کوي. کله چې په لومړي کوډ کې د EF کور سره کار کول ، نو نور اړین ندي چې ډیټابیس ځای په ځای کړئ
  • څرنګه چې موږ د لومړي کوډ څخه نڅا کوو، دا ممکنه ده چې د ټولو اړین معلوماتو لاسرسي چمتو کونکو ته یو مهاجرت ترسره کړو
  • د چمتو کونکو په اړه ، PostgreSQL ملاتړ کیږي ، اوریکل ملاتړ کیږي ، او داسې نور ، او حتی د MS SQL سرور 

او همدارنګه زیانونه:

  • د شخړې حل په ورته کچه پاتې شو. دا اړینه ده چې مهاجرتونه ترتیب کړئ او د ډیټابیس سنیپ شاټونه تازه کړئ
  • په هغه موډلونو تکیه چې مهاجرتونه رامینځته کیږي

DbUp

د ډیټا مهاجرت سیسټمونو پرتله کول او انتخاب
dbup.github.io

DbUp یو .NET کتابتون دی چې د NuGet لخوا نصب شوی او د SQL سرور ته د بدلونونو فشار ورکولو کې مرسته کوي. دا تعقیبوي چې کوم بدلون سکریپټونه دمخه اجرا شوي او هغه چلوي چې د ډیټابیس تازه کولو لپاره اړین دي. کتابتون په ASP.NET کې د خلاصې سرچینې بلاګینګ انجن لپاره د پروژې څخه وده کړې او د MIT جواز لاندې شتون لري ، او کوډ په GitHub کې دی. مهاجرتونه د T-SQL په کارولو سره تشریح شوي.

ګټې څه دي:

  • د لوی شمیر DBMS لپاره ملاتړ (MS SQL Server, PstgreSQL, MySQL)
  • څرنګه چې سکریپټونه په T-SQL کې لیکل شوي، دوی خورا ساده ښکاري
  • شخړې هم د SQL په کارولو سره حل کیږي

او زیانونه:

  • د ټولو ملاتړ شوي DBMSs ډولونو سره ، اوریکل یو له دوی څخه ندي
  • د ORM سره متقابل عمل نه کوي
  • د لاس په واسطه د T-SQL سکریپټونو لیکل هغه څه ندي چې موږ یې هدف درلود
  • اسناد او ټولنه داسې ده، که څه هم د SQL سکریپټونو لیکلو شرایطو کې دوی ممکن اړین نه وي.

RoundhouseE

د ډیټا مهاجرت سیسټمونو پرتله کول او انتخاب
github.com/chucknorris/roundhouse

د مهاجرت مدیریت دا وسیله، د اپاچي 2.0 جواز لاندې ویشل شوې، لکه د تیر په څیر، د T-SQL مهاجرت انجن پرمخ ځي. په ښکاره ډول، پراختیا کونکو د آرامۍ پراختیا پروسې رامینځته کولو پرځای د DBMS ملاتړ په اړه تخنیکي ستونزو حل کولو ته لومړیتوب ورکړی.

پرو:

  • د اړین DBMS ملاتړ کوي (د اوریکل په شمول)

ضمیمه:

  • اوریکل (همدارنګه لاسرسی، کوم چې زموږ لپاره غیر مناسب دی) په .NET کور کې ملاتړ نه کوي، یوازې په .NET بشپړ چوکاټ کې
  • د ORM سره کار نه کوي
  • د پخوانۍ وسیلې په پرتله حتی لږ اسناد شتون لري
  • یوځل بیا - مهاجرتونه د سکریپټونو لخوا لیکل شوي

ThinkingHome.مهاجر

د ډیټا مهاجرت سیسټمونو پرتله کول او انتخاب

د .NET کور پلیټ فارم ته د نسخې ډیټابیس سکیما مهاجرت لپاره یوه وسیله، د MIT جواز لاندې ویشل شوې. پراختیا کونکي پخپله نږدې یو کال دمخه د دې وروستي نسخې په اړه لیکلي.

پرو:

  • د .NET کور لپاره ډیزاین شوی
  • د مهاجرت د شاخي لړۍ پلي کول
  • د مهاجرت د ننوتلو پلي کول

ضمیمه:

  • وروستی یو کال دمخه تازه شوی. په ښکاره ډول پروژه نه ملاتړ کیږي
  • د اوریکل لخوا نه ملاتړ کیږي (مقاله لیکي چې دا د .NET کور لپاره د باثباته پلي کولو نشتوالي له امله دی - مګر دا یو کال دمخه دی)
  • د مهاجرت اتوماتیک نسل نشته

په ټوله کې، پروژه هیله مند ښکاري، په ځانګړې توګه که دا د پراختیا لپاره وي، مګر موږ اړتیا درلوده چې دلته او اوس پریکړه وکړو.

روان مهاجر

د ډیټا مهاجرت سیسټمونو پرتله کول او انتخاب
github.com/fluentmigrator/fluentmigrator

د مینه والو لوی اردو سره د مهاجرت خورا مشهور وسیله. د اپاچی 2.0 جواز لاندې توزیع شوی. لکه څنګه چې په تفصیل کې ویل شوي، دا د .NET لپاره د مهاجرت چوکاټ دی، د ریل مهاجرت پر روبي ته ورته دی. د ډیټابیس سکیما کې بدلونونه په C# ټولګیو کې تشریح شوي.

دلته ګټې شتون لري:

  • د اړتیا وړ DBMS لپاره ملاتړ
  • د .NET کور ملاتړ
  • لویه پرمختللې ټولنه
  • د مهاجرتونو ترمنځ شخړې په ترتیب سره حل کیږي - د مهاجرتونو د اجرا کولو ترتیب مشخص شوی. سربیره پردې ، که چیرې د یوې ادارې په شاوخوا کې شخړه رامینځته شي ، کله چې کوډ ضمیمه شي ، دا په ورته ډول حل کیږي لکه په پاتې کوډ کې.
  • داسې پروفایلونه شتون لري چې د بریالي مهاجرت وروسته اجرا کیږي. او دوی کولی شي د خدماتو دندې ترسره کړي وروستی تازه معلومات یوه میاشت دمخه و، دا پروژه ژوندۍ ده

د نیمګړتیاوو لپاره، دوی دلته دي:

  • د مهاجرت اتوماتیک نسل نشته
  • د EF ماډلونو سره هیڅ تړاو نلري
  • هیڅ ډیټابیس عکسونه نشته

زموږ انتخاب څه وو؟

د ډیټا مهاجرت سیسټمونو پرتله کول او انتخاب

ګرمې بحثونه د دوو پیرامیټونو په شاوخوا کې راوتلي - د مهاجرت اتوماتیک نسل او د شخړو هوښیار حل. نور عوامل خورا لږ ډارونکي وو. د پایلې په توګه، د بحث د پایلو پر بنسټ، ټیم پریکړه وکړه چې په نوې پروژه کې د روان مهاجرت څخه کار واخلي. ځکه چې په راتلونکي کې د شخړو حل کول به ډیرې ګټې راوړي.

موندنو

البته، هیڅ بشپړ وسایل شتون نلري. نو موږ باید د انتخاب کولو لپاره خپلو "غوښتنو" ته لومړیتوب ورکړو. په هرصورت، د نورو ټیمونو او نورو دندو لپاره، نور عوامل ممکن پریکړه کونکي وي. موږ امید لرو چې دا مقاله به تاسو سره د انتخاب کولو کې مرسته وکړي.

سرچینه: www.habr.com

Add a comment