Kuyerekeza ndi kusankha machitidwe osuntha deta

Kuyerekeza ndi kusankha machitidwe osuntha deta

Kuyerekeza ndi kusankha machitidwe osuntha deta

Chitsanzo cha deta chimakonda kusintha panthawi ya chitukuko, ndipo panthawi ina sichikugwirizananso ndi deta. Zachidziwikire, nkhokweyo imatha kuchotsedwa, kenako ORM ipanga mtundu watsopano womwe ungafanane ndi mtunduwo, koma njirayi idzatsogolera kutayika kwa data yomwe ilipo. Choncho, ntchito ya kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe kake

M'nkhaniyi, tikufuna kuyang'ana zida zosiyanasiyana zoyendetsera kusamuka kwa database. Tikukhulupirira kuti ndemangayi idzakhala yothandiza kwa opanga omwe akukumana ndi chisankho chofanana.

Cholinga

Kampani yathu pakali pano ikupanga m'badwo wotsatira wazogulitsa - Docs Security Suite (DSS). Gawo la seva limalembedwa mu .Net Core, ndi Entity Framework Core imagwiritsidwa ntchito ngati DBMS. Popanga pulogalamu, timagwiritsa ntchito njira ya Code First.

Dongosolo lachidziwitso chogwiritsa ntchito limapangidwa ndi opanga angapo nthawi imodzi - aliyense ali ndi udindo pagawo lawo lomveka ladongosolo.

M'badwo wam'mbuyo wa DSS udagwiritsa ntchito njira zakale za Entity Framework Migrations (EF 6) monga kasamalidwe ka kusamuka. Komabe, madandaulo ena adaunjikira, chachikulu ndikuti EF ilibe njira yabwino yothetsera mikangano yamitundu. Izi zimatikhumudwitsabe pokonza zolakwika ngati gawo lothandizira, choncho tinaganiza zoganizira njira zina.

Chifukwa cha zokambiranazo, zofunikira zotsatila za kayendetsedwe ka kayendetsedwe ka anthu osamukira kumayiko ena zinapangidwa:

  1. Thandizo la ma DBMS osiyanasiyana. MS SQL Server, PostgreSQL, Oracle ndiyofunika, koma ndizotheka kugwiritsa ntchito zina
  2. Kugwira ntchito ndi ORM. Poyambirira, idakonzedwa kuti igwiritse ntchito EF Core, koma pakupanga mapangidwe tinali okonzeka kuganizira ma ORM ena
  3. Kudzipangitsa kusamuka. Poganizira kakulidwe ka Code Choyamba, ndikufuna kupewa kufunikira "kulemba pamanja" kusamuka.
  4. Zotsutsana zamitundu. Pachitukuko chogawidwa, pamene mukugwirizanitsa, EF Core ikhoza kuvutika ndi mikangano. Izi zimakhala vuto lalikulu chifukwa magawo osiyanasiyana a pulogalamuyi amapangidwa ndi opanga osiyanasiyana, chifukwa chake muyenera kuwononga nthawi yambiri pa chilichonse.
  5. Zolemba zapamwamba ndi chithandizo. Apa, zikuwoneka kwa ife, palibe kufotokozera komwe kumafunikira
  6. Kwaulere. Mulingowu ndi wovomerezeka, popeza machitidwe siwokwera mtengo kwambiri kapena okwera mtengo, koma abwino mwabwino, tinali okonzeka kuganizira.

Chifukwa cha kafukufuku wochepa, njira zotsatirazi zidapezeka ndipo zidapezeka kuti ndizofunikira kuziganizira:

  1. EF Core Migration
  2. DBup
  3. RoundhouseE
  4. ThinkingHome.Migrator
  5. Mosamukasamuka bwino

Ndipo tsopano tsatanetsatane pang'ono

Kuyerekeza ndi kusankha machitidwe osuntha deta
EntityFramework Core Migration

Mwachibadwa, iyi inali njira yoyamba komanso yaikulu yosankha. Chida chachilengedwe chomwe chimagwira ntchito m'bokosi popanda kusewera maseche. Zolemba zambiri, zovomerezeka osati choncho, kuphweka, ndi zina zotero. Komabe, madandaulo omwe amaperekedwa pa EF yachikale ndiwofunikanso kwa EF Core.

Chifukwa chake, zabwino za EF Core zimawonetsedwa:

  • Thandizo la Microsoft, zolemba, kuphatikiza mu Chirasha, gulu lalikulu
  • Kusamuka kokhazikika kutengera CodeFirst
  • Poyerekeza ndi EF 6, EF Core sasunganso chithunzithunzi cha database. Mukamagwira ntchito ndi EF Core mu Code Choyamba, sikofunikiranso kuyika database
  • Popeza tikuvina kuchokera ku Code First, ndizotheka kusamuka kumodzi kwa onse ofunikira opereka deta
  • Ponena za opereka chithandizo, PostgreSQL imathandizidwa, Oracle imathandizidwa, etc., etc., komanso ngakhale MS SQL Server 

Komanso zovuta zake:

  • Kuthetsa kusamvana kunakhalabe pamlingo womwewo. Ndikofunikira kusanja kusamuka ndikusintha zithunzi za database
  • Kudalira pa zitsanzo zomwe kusamuka kumapangidwira

DbUp

Kuyerekeza ndi kusankha machitidwe osuntha deta
dbup.github.io

DbUp ndi laibulale ya .NET yomwe imayikidwa ndi NuGet ndipo imathandiza kukankhira kusintha kwa SQL Server. Imasunga zosintha zomwe zasinthidwa kale ndikuyendetsa zomwe zili zofunika kuti zisinthe database. Laibulaleyi idakula kuchokera ku projekiti ya injini yotsegulira mabulogu pa ASP.NET ndipo ilipo pansi pa layisensi ya MIT, ndipo code ili pa GitHub. Kusamuka kumafotokozedwa pogwiritsa ntchito T-SQL.

Ubwino wake ndi wotani:

  • Kuthandizira kwa DBMS yambiri (MS SQL Server, PstgreSQL, MySQL)
  • Popeza zolembazo zidalembedwa mu T-SQL, zimawoneka zosavuta
  • Mikangano imathetsedwanso pogwiritsa ntchito SQL

Ndipo kuipa:

  • Ndi mitundu yonse ya ma DBMS omwe amathandizidwa, Oracle si amodzi mwa iwo
  • Simalumikizana ndi ORM
  • Kulemba zolemba za T-SQL pamanja sizomwe tinkafuna
  • Zolemba ndi anthu ammudzi zili choncho, ngakhale polemba zolemba za SQL sizingakhale zofunikira.

RoundhouseE

Kuyerekeza ndi kusankha machitidwe osuntha deta
github.com/chucknorris/roundhouse

Chida chowongolera kusamukachi, chogawidwa pansi pa layisensi ya Apache 2.0, monga yapitayi, chimayenda pa injini ya T-SQL yosamukira. Mwachiwonekere, omangawo adaika patsogolo kuthetsa mavuto aukadaulo okhudzana ndi chithandizo cha DBMS, m'malo mopanga njira yabwino yopangira chitukuko.

Zotsatira:

  • Imathandizira DBMS yofunikira (kuphatikiza Oracle)

Wotsatsa:

  • Oracle (komanso Access, yomwe ilibe ntchito kwa ife) sichimathandizidwa pa .NET Core, pokhapokha pa .NET Full Framework
  • Sizikugwira ntchito ndi ORM
  • Pali zolembedwa zochepa kuposa zida zam'mbuyomu
  • Apanso - kusamuka kumalembedwa ndi zolemba

ThinkingHome.Migrator

Kuyerekeza ndi kusankha machitidwe osuntha deta

Chida chosinthira schema ya database kupita ku nsanja ya .NET Core, yogawidwa pansi pa layisensi ya MIT. Wopanga yekhayo adalemba za mtundu wake waposachedwa pafupifupi chaka chapitacho.

Zotsatira:

  • Zapangidwira .NET Core
  • Anakhazikitsa nthambi zotsatizana za kusamuka
  • Kukhazikitsa mitengo yosamuka

Wotsatsa:

  • Zasinthidwa komaliza chaka chapitacho. Zikuoneka kuti polojekitiyi siinagwiritsidwe ntchito
  • Osathandizidwa ndi Oracle (nkhaniyo ikunena kuti izi ndi chifukwa chosowa kukhazikitsa kokhazikika kwa .NET Core - koma ichi ndi chaka chapitacho)
  • Palibe m'badwo wokhazikika wa kusamuka

Ponseponse, polojekitiyi ikuwoneka yodalirika, makamaka ngati ikuyenera kukula, koma tinkafunika kupanga chisankho pano ndi pano.

Mosamukasamuka bwino

Kuyerekeza ndi kusankha machitidwe osuntha deta
github.com/fluentmigrator/fluentmigrator

Chida chodziwika kwambiri chosamukira ndi gulu lalikulu la mafani. Kugawidwa pansi pa chilolezo cha Apache 2.0. Monga tafotokozera m'mafotokozedwe, ndi ndondomeko yosamukira ku .NET, yofanana ndi Ruby pa Rails Migrations. Zosintha pa schema ya database zikufotokozedwa m'makalasi a C #.

Pali zabwino pano:

  • Thandizo la DBMS yofunikira
  • .NET Core thandizo
  • Anthu ambiri otukuka
  • Mikangano pakati pa kusamuka imathetsedwa motsatizana - dongosolo la kupha anthu osamuka limatchulidwa. Kuonjezera apo, ngati mkangano ubuka pafupi ndi bungwe limodzi, pamene mukugwirizanitsa code, imathetsedwa mofanana ndi ma code ena onse.
  • Pali ma profiles omwe amachitidwa pambuyo pa kusamuka bwino. Ndipo amatha kunyamula ntchito zautumiki.Zosintha zomaliza zidachitika mwezi wapitawu, ndiye kuti, pulojekitiyi yamoyo

Ponena za minuses, nayi:

  • Palibe m'badwo wokhazikika wa kusamuka
  • Palibe kulumikizana ndi mitundu ya EF
  • Palibe zithunzi za database

Tinasankha chiyani?

Kuyerekeza ndi kusankha machitidwe osuntha deta

Kukambitsirana kwakukulu kunazungulira magawo awiri - kusamuka kwachisawawa ndi kuthetsa mikangano mwanzeru. Zinthu zina sizinali zochititsa mantha kwambiri. Zotsatira zake, potengera zotsatira za zokambiranazo, gululo linaganiza zogwiritsa ntchito Fluent Migrator mu polojekiti yatsopano. Chifukwa kuthetsa mikangano m’tsogolo kudzabweretsa madalitso ambiri.

anapezazo

Inde, palibe zida zangwiro. Choncho tinayenera kuika patsogolo "zofuna" zathu kuti tisankhe. Komabe, kwa magulu ena ndi ntchito zina, zinthu zina zitha kukhala zotsimikiza. Tikukhulupirira kuti nkhaniyi ikuthandizani kusankha.

Source: www.habr.com

Kuwonjezera ndemanga