Ukuqhathaniswa nokukhethwa kwamasistimu okuthutha idatha

Ukuqhathaniswa nokukhethwa kwamasistimu okuthutha idatha

Ukuqhathaniswa nokukhethwa kwamasistimu okuthutha idatha

Imodeli yedatha ijwayele ukushintsha phakathi nenqubo yokuthuthukiswa, futhi ngesikhathi esithile ayisahambisani nesizindalwazi. Yiqiniso, i-database ingasuswa, bese i-ORM izodala inguqulo entsha ezohambisana nemodeli, kodwa le nqubo izoholela ekulahlekelweni kwedatha ekhona. Ngakho, umsebenzi wesistimu yokufuduka ukuqinisekisa ukuthi, ngenxa yoshintsho lwe-schema, ivumelaniswa nemodeli yedatha kuhlelo lokusebenza ngaphandle kokulahlekelwa idatha ekhona.

Kulesi sihloko, sithanda ukubheka amathuluzi ahlukahlukene okuphatha ukufuduka kwesizindalwazi. Sithemba ukuthi lokhu kubuyekezwa kuzoba usizo konjiniyela ababhekene nokukhetha okufanayo.

Inhloso

Inkampani yethu njengamanje ithuthukisa isizukulwane esilandelayo somkhiqizo - Amadokhumenti Security Suite (DSS). Ingxenye yeseva ibhalwe ku-.Net Core, futhi I-Entity Framework Core isetshenziswa njenge-DBMS. Lapho siklama uhlelo lokusebenza, sisebenzisa indlela ye-Code First.

Imodeli yesizinda sohlelo lokusebenza idalwe onjiniyela abaningana ngesikhathi esisodwa - ngamunye unesibopho sengxenye yakhe enengqondo yesistimu.

Isizukulwane sangaphambilini se-DSS sasebenzisa i-Entity Framework Migrations yakudala (EF 6) njengohlelo lokuphatha ukufuduka. Kodwa-ke, ezinye izikhalo ziye zanqwabelana ngokumelene nayo, okuyinhloko ukuthi i-EF ayinayo indlela enengqondo yokuxazulula izingxabano zenguqulo. Leli qiniso lisasicasula uma silungisa iziphazamisi njengengxenye yosekelo, ngakho-ke sinqume ukucabangela ezinye izinketho.

Njengomphumela wengxoxo, izidingo ezilandelayo zesistimu yokulawula ukufuduka zakhiwe:

  1. Ukusekelwa kwama-DBMS ahlukahlukene. Iseva ye-MS SQL, i-PostgreSQL, i-Oracle iyadingeka, kodwa kungenzeka ukusebenzisa ezinye
  2. Ukusebenza ne-ORM. Ekuqaleni, kwakuhlelwe ukusebenzisa i-EF Core, kodwa esigabeni sokuklama sase silungele ukucabangela amanye ama-ORM
  3. Ukukhiqiza okuzenzakalelayo kokufuduka. Ngokucabangela ukuthuthukiswa kweKhodi Okokuqala, ngingathanda ukugwema isidingo “sokubhala ngesandla” ukufuduka.
  4. Izingxabano zenguqulo. Endaweni yokuthuthukiswa esabalalisiwe, lapho ihlanganiswa, i-EF Core ingabhekana nezingxabano. Lokhu kuba yinkinga enkulu ngoba izingxenye ezihlukene zohlelo lokusebenza zidalwe onjiniyela abahlukene, ngakho kufanele uchithe isikhathi esiningi kuhlelo ngalunye.
  5. Amadokhumenti athuthukile nokusekelwa. Lapha, kubonakala kithi, akukho ncazelo edingekayo
  6. Mahhala. Umbandela unemibandela, njengoba amasistimu angabizi kakhulu noma angabizi kakhulu kodwa afaneleka kalula, besikulungele futhi ukucabangela.

Njengomphumela wocwaningo oluncane, lezi zinketho ezilandelayo zatholakala futhi zatholakala zifiseleka ukuba zicatshangelwe:

  1. I-EF Core Migration
  2. DBup
  3. I-RoundhouseE
  4. ThinkingHome.Migrator
  5. Umfuduki Oqephuzayo

Futhi manje imininingwane eyengeziwe

Ukuqhathaniswa nokukhethwa kwamasistimu okuthutha idatha
Ukufuduka Okubalulekile kwe-EntityFramework

Ngokwemvelo, lena kwakuyinketho yokuqala neyinhloko yokukhetha. Insimbi yomdabu esebenza ngaphandle kwebhokisi ngaphandle kokudlala ithamborini. Inani elikhulu lemibhalo, esemthethweni hhayi kanjalo, ubulula, njll. Kodwa-ke, izikhalazo ezenziwe nge-EF yakudala nazo zibalulekile ku-EF Core.

Ngakho-ke, izinzuzo ze-EF Core zigqanyisiwe:

  • Ukusekelwa kweMicrosoft, imibhalo, kufaka phakathi ngesiRashiya, umphakathi omkhulu
  • Ukwenziwa ngokuzenzakalela kokufuduka okusekelwe ku-CodeFirst
  • Uma kuqhathaniswa ne-EF 6, i-EF Core ayisasigcini isifinyezo sesizindalwazi. Lapho usebenza ne-EF Core ku-Code First, akusadingeki ukuthi kusetshenziswe isizindalwazi
  • Njengoba sidansa sisuka ku-Code First, kungenzeka ukuthi siqhube ukuthuthela okukodwa kubo bonke abahlinzeki bokufinyelela idatha abadingekayo
  • Mayelana nabahlinzeki, i-PostgreSQL iyasekelwa, i-Oracle iyasekelwa, njll., njll., ngisho ne-MS SQL Server 

Futhi nokungalungi:

  • Ukuxazulula ukungqubuzana kwahlala kusezingeni elifanayo. Kuyadingeka ukulandelanisa ukufuduka nokuvuselela izifinyezo zesizindalwazi
  • Ukuncika kumamodeli lapho ukufuduka okukhiqizwa khona

DbUp

Ukuqhathaniswa nokukhethwa kwamasistimu okuthutha idatha
dbup.github.io

I-DbUp ilabhulali ye-.NET efakwe yi-NuGet futhi isiza ukusunduza izinguquko kuseva ye-SQL. Igcina ithrekhi yokuthi yiziphi izinguquko zeskripthi esezivele zenziwe futhi isebenzisa lezo ezidingekayo ukuze kubuyekezwe idathabheyisi. Umtapo wolwazi ukhule uphuma kuphrojekthi yenjini yokubhuloga yomthombo ovulekile ku-ASP.NET futhi ikhona ngaphansi kwelayisensi ye-MIT, futhi ikhodi iku-GitHub. Ukufuduka kuchazwa kusetshenziswa i-T-SQL.

Yiziphi izinzuzo:

  • Ukusekelwa kwenombolo enkulu ye-DBMS (MS SQL Server, PstgreSQL, MySQL)
  • Njengoba imibhalo ibhalwe ku-T-SQL, ibukeka ilula
  • Izingxabano nazo zixazululwa kusetshenziswa i-SQL

Futhi okubi:

  • Ngazo zonke izinhlobo zama-DBMS asekelwe, i-Oracle akuyona enye yazo
  • Ayihlanganisi ne-ORM
  • Ukubhala imibhalo ye-T-SQL ngesandla akuyona into ebesiyihlose
  • Amadokhumenti kanye nomphakathi kunje-njalo, nakuba ngokubhala imibhalo ye-SQL kungase kungadingeki.

I-RoundhouseE

Ukuqhathaniswa nokukhethwa kwamasistimu okuthutha idatha
github.com/chucknorris/roundhouse

Leli thuluzi lokulawula ukuthuthela, lisatshalaliswa ngaphansi kwelayisensi ye-Apache 2.0, njengeyangaphambili, isebenza ngenjini yokuthutha ye-T-SQL. Ngokusobala, abathuthukisi babeke phambili ukuxazulula izinkinga zobuchwepheshe mayelana nokusekelwa kwe-DBMS, kunokuba bakhe inqubo yentuthuko enethezekile.

Izinzuzo:

  • Isekela i-DBMS edingekayo (kuhlanganise ne-Oracle)

Umthengi:

  • I-Oracle (kanye ne-Access, engabalulekile kithi) ayisekelwa ku-.NET Core, kuphela ku-.NET Full Framework
  • Ayisebenzi nge-ORM
  • Kukhona amadokhumenti amancane kunethuluzi langaphambilini
  • Futhi - ukufuduka kubhalwa ngemibhalo

ThinkingHome.Migrator

Ukuqhathaniswa nokukhethwa kwamasistimu okuthutha idatha

Ithuluzi lokufuduka kwe-schema sesizindalwazi esiguqulelwe kusizindalwazi se-.NET Core, sisatshalaliswa ngaphansi kwelayisensi ye-MIT. Umthuthukisi ngokwakhe wabhala mayelana nenguqulo yayo yakamuva cishe ngonyaka odlule.

Izinzuzo:

  • Idizayinelwe i-.NET Core
  • Kusetshenziswe ukulandelana kwegatsha lokufuduka
  • Kwenziwe ukugawulwa kokuthutha

Umthengi:

  • Igcine ukubuyekezwa ngonyaka odlule. Ngokusobala iphrojekthi ayisekelwe
  • Ayisekelwa i-Oracle (isihloko sithi lokhu kungenxa yokuntuleka kokuqaliswa okuzinzile kwe-.NET Core - kodwa lokhu unyaka odlule)
  • Akukho ukukhiqiza okuzenzakalelayo kokufuduka

Sekukonke, iphrojekthi ibukeka ithembisa, ikakhulukazi uma izothuthuka, kodwa besidinga ukuthatha isinqumo lapha namanje.

Umfuduki Oqephuzayo

Ukuqhathaniswa nokukhethwa kwamasistimu okuthutha idatha
github.com/fluentmigrator/fluentmigrator

Ithuluzi lokufuduka elidume kakhulu elinebutho elikhulu labalandeli. Kusatshalaliswa ngaphansi kwelayisensi ye-Apache 2.0. Njengoba kushiwo encazelweni, wuhlaka lokufuduka lwe-.NET, olufana ne-Ruby on Rails Migrations. Izinguquko ku-schema sesizindalwazi zichazwe kumakilasi e-C#.

Kunezinzuzo lapha:

  • Ukusekelwa kwe-DBMS edingekayo
  • Usekelo lwe-NET Core
  • Umphakathi omkhulu othuthukile
  • Izingxabano phakathi kokuthutha zixazululwa ngokulandelana—uhlelo lokwenziwa kokufuduka lucacisiwe. Ngaphezu kwalokho, uma ukungqubuzana kuphakama eduze kwebhizinisi elilodwa, lapho kuhlanganisa ikhodi, kuxazululwa ngendlela efanayo nakwenye ikhodi.
  • Kunamaphrofayili asetshenziswa ngemuva kokufuduka okuyimpumelelo. Futhi bangakwazi ukuthwala imisebenzi yesevisi. Isibuyekezo sokugcina sasiyinyanga edlule, okungukuthi, iphrojekthi iyaphila

Ngokuqondene nama-minuses, nanka:

  • Akukho ukukhiqiza okuzenzakalelayo kokufuduka
  • Akukho ukuxhumana namamodeli we-EF
  • Azikho izifinyezo zesizindalwazi

Sakhethani?

Ukuqhathaniswa nokukhethwa kwamasistimu okuthutha idatha

Izingxabano ezishisayo zazizungeza amapharamitha amabili - ukukhiqiza okuzenzakalelayo kokufuduka nokuxazulula izingxabano. Ezinye izici bezingethusi kangako. Ngenxa yalokho, ngokusekelwe emiphumeleni yengxoxo, ithimba linqume ukusebenzisa i-Fluent Migrator kuphrojekthi entsha. Ngoba ukuxazulula izingxabano esikhathini esizayo kuyoletha izinzuzo ezengeziwe.

okutholakele

Yiqiniso, awekho amathuluzi aphelele. Ngakho-ke bekufanele sibeke phambili “izinto esizifunayo” ukuze sikhethe. Kodwa-ke, kwamanye amaqembu neminye imisebenzi, ezinye izici zingase zibe nesinqumo. Sithemba ukuthi lesi sihloko sizokusiza wenze ukukhetha.

Source: www.habr.com

Engeza amazwana