Afiwera ati yiyan ti data ijira awọn ọna šiše

Afiwera ati yiyan ti data ijira awọn ọna šiše

Afiwera ati yiyan ti data ijira awọn ọna šiše

Awoṣe data duro lati yipada lakoko ilana idagbasoke, ati ni aaye kan ko ni ibamu mọ data data. Nitoribẹẹ, ibi ipamọ data le paarẹ, lẹhinna ORM yoo ṣẹda ẹya tuntun ti yoo baamu awoṣe, ṣugbọn ilana yii yoo ja si isonu ti data to wa tẹlẹ. Nitorinaa, iṣẹ ti eto iṣiwa ni lati rii daju pe, nitori abajade iyipada ero, o ti muuṣiṣẹpọ pẹlu awoṣe data ninu ohun elo laisi pipadanu data to wa tẹlẹ.

Ninu nkan yii, a yoo fẹ lati wo ọpọlọpọ awọn irinṣẹ fun ṣiṣakoso awọn iṣikiri data data. A nireti pe atunyẹwo yii yoo wulo fun awọn olupilẹṣẹ ti o dojuko pẹlu yiyan ti o jọra.

Nkan

Ile-iṣẹ wa lọwọlọwọ n ṣe idagbasoke idagbasoke iran atẹle ti ọja - Docs Security Suite (DSS). Apakan olupin ni a kọ sinu .Net Core, ati Core Framework Core ti lo bi DBMS. Nigbati o ba n ṣe apẹrẹ ohun elo kan, a lo ọna koodu Akọkọ.

Awoṣe ašẹ ohun elo jẹ ipilẹṣẹ nipasẹ ọpọlọpọ awọn olupilẹṣẹ ni akoko kanna - ọkọọkan jẹ iduro fun apakan ọgbọn ti ara wọn ti eto naa.

Iran ti iṣaaju ti DSS lo awọn Iṣilọ Ilana Ipilẹ Ẹda Alailẹgbẹ (EF 6) gẹgẹbi eto iṣakoso ijira. Sibẹsibẹ, diẹ ninu awọn ẹdun ọkan ti kojọpọ si i, akọkọ ni pe EF ko ni ọna ti o ni oye lati yanju awọn ija ẹya. Otitọ yii tun binu wa nigba titunṣe awọn idun gẹgẹbi apakan ti atilẹyin, nitorinaa a pinnu lati gbero awọn aṣayan yiyan.

Bi abajade ijiroro naa, awọn ibeere wọnyi fun eto iṣakoso iṣiwa ni a ṣẹda:

  1. Atilẹyin fun orisirisi DBMS. MS SQL Server, PostgreSQL, Oracle ni a nilo, ṣugbọn o ṣee ṣe lati lo awọn omiiran
  2. Nṣiṣẹ pẹlu ORM. Ni ibẹrẹ, o ti gbero lati lo EF Core, ṣugbọn ni ipele apẹrẹ a ti ṣetan lati gbero awọn ORM miiran
  3. Aifọwọyi-iran ti awọn migrations. Ti o ba ṣe akiyesi idagbasoke koodu Akọkọ, Emi yoo fẹ lati yago fun iwulo lati “kọ-ọwọ” awọn iṣipopada
  4. Awọn ija Version. Ni agbegbe idagbasoke ti o pin, nigbati o ba dapọ, EF Core le jiya lati awọn ija. Eyi di iṣoro pataki nitori awọn ẹya oriṣiriṣi ti ohun elo ni o ṣẹda nipasẹ awọn olupilẹṣẹ oriṣiriṣi, nitorinaa o ni lati lo akoko pupọ lori ọkọọkan.
  5. To ti ni ilọsiwaju iwe ati support. Nibi, o dabi si wa, ko si alaye ti a nilo
  6. Ọfẹ. Apejuwe naa jẹ majemu, nitori awọn eto kii ṣe gbowolori pupọ tabi gbowolori, ṣugbọn apẹrẹ ni irọrun, a tun ṣetan lati gbero

Bi abajade ti iwadii diẹ, awọn aṣayan wọnyi ni a rii ati rii pe o nifẹ fun ero:

  1. EF mojuto Migrations
  2. DBup
  3. RoundhouseE
  4. ThinkingHome.Migrator
  5. Fluent Migrator

Ati nisisiyi alaye diẹ diẹ sii

Afiwera ati yiyan ti data ijira awọn ọna šiše
EntityFramework Core Migrations

Nipa ti, eyi ni akọkọ ati aṣayan akọkọ lati yan. Ohun elo abinibi ti o ṣiṣẹ lati inu apoti laisi eyikeyi fidd ni ayika pẹlu tambourin. A o tobi iye ti iwe, osise ati ki o ko bẹ, ayedero, ati be be lo. Sibẹsibẹ, awọn ẹdun ọkan ti a ṣe nipa EF Ayebaye tun jẹ pataki pupọ fun EF Core.

Nitorinaa, awọn anfani fun EF Core jẹ afihan:

  • Atilẹyin Microsoft, iwe, pẹlu ni ede Rọsia, agbegbe nla
  • Aifọwọyi-iran ti awọn ijira da lori CodeFirst
  • Ti a ṣe afiwe si EF 6, EF Core ko tọju aworan aworan ti data mọ. Nigbati o ba n ṣiṣẹ pẹlu EF Core ni koodu Akọkọ, ko ṣe pataki lati ran data data kan lọ
  • Niwọn bi a ti n jó lati koodu First, o ṣee ṣe lati ṣe iṣiwa kan si gbogbo awọn olupese iraye si data ti o nilo
  • Nipa awọn olupese, PostgreSQL ṣe atilẹyin, Oracle ni atilẹyin, ati bẹbẹ lọ, ati bẹbẹ lọ, ati paapaa MS SQL Server 

Ati paapaa awọn alailanfani:

  • Ipinnu rogbodiyan wa ni ipele kanna. O jẹ dandan lati ṣe lẹsẹsẹ awọn iṣipopada ati imudojuiwọn awọn fọto ibi ipamọ data
  • Igbẹkẹle lori awọn awoṣe lori eyiti awọn iṣipopada ti wa ni ipilẹṣẹ

DbUp

Afiwera ati yiyan ti data ijira awọn ọna šiše
dbup.github.io

DbUp jẹ ile-ikawe .NET ti o ti fi sori ẹrọ nipasẹ NuGet ati iranlọwọ titari awọn ayipada si SQL Server. O tọju abala awọn iwe afọwọkọ iyipada ti tẹlẹ ti ṣiṣẹ ati ṣiṣe awọn ti o ṣe pataki lati ṣe imudojuiwọn data data. Ile-ikawe naa dagba lati inu iṣẹ akanṣe kan fun ẹrọ bulọọgi orisun ṣiṣi lori ASP.NET ati pe o wa labẹ iwe-aṣẹ MIT, koodu naa wa lori GitHub. Awọn iṣiwa ti wa ni apejuwe nipa lilo T-SQL.

Kini awọn anfani:

  • Atilẹyin fun nọmba nla ti DBMS (MS SQL Server, PstgreSQL, MySQL)
  • Niwọn igba ti a ti kọ awọn iwe afọwọkọ ni T-SQL, wọn dabi ohun rọrun
  • Awọn ija tun jẹ ipinnu nipa lilo SQL

Ati awọn alailanfani:

  • Pẹlu gbogbo ọpọlọpọ awọn DBMS ti o ni atilẹyin, Oracle kii ṣe ọkan ninu wọn
  • Ko ṣe ajọṣepọ pẹlu ORM
  • Kikọ awọn iwe afọwọkọ T-SQL pẹlu ọwọ kii ṣe ohun ti a n fojusi fun
  • Awọn iwe ati agbegbe jẹ bẹ bẹ, botilẹjẹpe ni awọn ofin kikọ awọn iwe afọwọkọ SQL wọn le ma ṣe pataki.

RoundhouseE

Afiwera ati yiyan ti data ijira awọn ọna šiše
github.com/chucknorris/roundhouse

Ohun elo iṣakoso ijira yii, ti a pin labẹ iwe-aṣẹ Apache 2.0, bii ti iṣaaju, nṣiṣẹ lori ẹrọ ijira T-SQL. Nkqwe, awọn olupilẹṣẹ ṣe pataki ipinnu awọn iṣoro imọ-ẹrọ nipa atilẹyin DBMS, dipo ṣiṣẹda ilana idagbasoke itunu.

Aleebu:

  • Ṣe atilẹyin DBMS pataki (pẹlu Oracle)

Konsi:

  • Oracle (bakannaa Wiwọle, eyiti ko ṣe pataki fun wa) ko ṣe atilẹyin lori .NET Core, nikan lori .NET Full Framework
  • Ko ṣiṣẹ pẹlu ORM
  • Nibẹ ni ani kere iwe ju ti tẹlẹ ọpa
  • Lẹẹkansi - awọn iṣipopada ti wa ni kikọ nipasẹ awọn iwe afọwọkọ

ThinkingHome.Migrator

Afiwera ati yiyan ti data ijira awọn ọna šiše

Ọpa kan fun ijira sikema database ti ikede si pẹpẹ NET Core, ti a pin labẹ iwe-aṣẹ MIT. Olùgbéejáde funrararẹ kowe nipa ẹya tuntun rẹ ni ọdun kan sẹhin.

Aleebu:

  • Apẹrẹ fun NET Core
  • Ti ṣe imuse ọna ṣiṣe ẹka ti awọn ijira
  • Iṣagbewọle ijira ti a ṣe

Konsi:

  • Last imudojuiwọn odun kan seyin. Nkqwe ise agbese ko ni atilẹyin
  • Ko ṣe atilẹyin nipasẹ Oracle (Nkan naa sọ pe eyi jẹ nitori aini imuse iduroṣinṣin fun NET Core - ṣugbọn eyi jẹ ọdun kan sẹhin)
  • Ko si laifọwọyi iran ti migrations

Iwoye, ise agbese na dabi ẹni ti o ni ileri, paapaa ti o ba ni idagbasoke, ṣugbọn a nilo lati ṣe ipinnu nibi ati bayi.

Fluent Migrator

Afiwera ati yiyan ti data ijira awọn ọna šiše
github.com/fluentmigrator/fluentmigrator

Ọpa ijira olokiki julọ pẹlu ọmọ ogun nla ti awọn onijakidijagan. Pinpin labẹ iwe-aṣẹ Apache 2.0. Gẹgẹbi a ti sọ ninu apejuwe, o jẹ ilana ijira fun .NET, ti o jọra si Ruby on Rails Migrations. Awọn iyipada si ero data data jẹ apejuwe ninu awọn kilasi C #.

Awọn anfani wa nibi:

  • Atilẹyin fun DBMS ti o nilo
  • .NET mojuto support
  • Tobi ni idagbasoke awujo
  • Awọn ija laarin awọn ijira ti wa ni ipinnu lẹsẹsẹ — aṣẹ ti ipaniyan ti awọn migration ti wa ni pato. Ni afikun, ti ariyanjiyan ba waye ni ayika nkan kan, nigbati o ba da koodu pọ, o ti yanju ni ọna kanna bi ninu iyokù koodu naa.
  • Awọn profaili wa ti o ṣiṣẹ lẹhin ijira aṣeyọri. Ati pe wọn le gbe awọn iṣẹ iṣẹ, imudojuiwọn to kẹhin jẹ oṣu kan sẹhin, iyẹn ni, iṣẹ akanṣe wa laaye

Nipa awọn iyokuro, eyi ni:

  • Ko si laifọwọyi iran ti migrations
  • Ko si asopọ pẹlu awọn awoṣe EF
  • Ko si awọn aworan ibi ipamọ data

Kini yiyan wa?

Afiwera ati yiyan ti data ijira awọn ọna šiše

Awọn ijiyan kikan naa yika awọn aye meji - iran adaṣe ti awọn ijira ati ipinnu mimọ ti awọn ija. Awọn ifosiwewe miiran ko ni ẹru pupọ. Bi abajade, da lori awọn abajade ti ijiroro, ẹgbẹ pinnu lati lo Fluent Migrator ninu iṣẹ akanṣe tuntun. Nitoripe yiyan awọn ija ni ọjọ iwaju yoo mu awọn anfani pupọ sii.

awari

Dajudaju, ko si awọn irinṣẹ pipe. Nitorina a ni lati ṣe pataki awọn "awọn ifẹ" wa lati ṣe yiyan. Sibẹsibẹ, fun awọn ẹgbẹ miiran ati awọn iṣẹ-ṣiṣe miiran, awọn ifosiwewe miiran le jẹ ipinnu. A nireti pe nkan yii yoo ran ọ lọwọ lati ṣe yiyan.

orisun: www.habr.com

Fi ọrọìwòye kun