Coimeas agus taghadh de shiostaman imrich dàta

Coimeas agus taghadh de shiostaman imrich dàta

Coimeas agus taghadh de shiostaman imrich dàta

Tha am modail dàta buailteach atharrachadh tron ​​​​phròiseas leasachaidh, agus aig àm air choreigin chan eil e a’ freagairt ris an stòr-dàta tuilleadh. Gu dearbh, faodar an stòr-dàta a dhubhadh às, agus an uairsin cruthaichidh an ORM dreach ùr a fhreagras ris a ’mhodail, ach leanaidh am modh-obrach seo gu call an dàta a th’ ann. Mar sin, is e gnìomh an t-siostam imrich dèanamh cinnteach, mar thoradh air atharrachadh sgeama, gu bheil e air a shioncronachadh leis a’ mhodail dàta san tagradh gun a bhith a ’call an dàta a th’ ann.

San artaigil seo, bu mhath leinn sùil a thoirt air diofar innealan airson a bhith a’ riaghladh imrich stòr-dàta. Tha sinn an dòchas gum bi an lèirmheas seo feumail do luchd-leasachaidh aig a bheil an aon roghainn.

Amas

Tha a’ chompanaidh againn an-dràsta gu gnìomhach a’ leasachadh an ath ghinealach de thoraidhean - Docs Security Suite (DSS). Tha pàirt an fhrithealaiche air a sgrìobhadh ann an .Net Core, agus tha Entity Framework Core air a chleachdadh mar an DBMS. Nuair a bhios sinn a’ dealbhadh tagradh, bidh sinn a’ cleachdadh modh Code First.

Tha am modail àrainn tagraidh air a chruthachadh le grunn luchd-leasachaidh aig an aon àm - tha uallach air gach fear airson am pàirt loidsigeach fhèin den t-siostam.

Chleachd an ginealach roimhe de DSS an clasaig Entity Framework Migrations (EF 6) mar an siostam riaghlaidh imrich. Ach, tha cuid de ghearanan air cruinneachadh na aghaidh, is e am prìomh fhear nach eil dòigh chinnteach aig EF airson fuasgladh fhaighinn air còmhstri dreach. Tha an fhìrinn seo fhathast a’ cur dragh oirnn nuair a bhios sinn a’ càradh bhiteagan mar phàirt de thaic, agus mar sin chuir sinn romhainn beachdachadh air roghainnean eile.

Mar thoradh air an deasbad, chaidh na riatanasan a leanas airson an t-siostam riaghlaidh imrich a chruthachadh:

  1. Taic airson diofar DBMS. Tha feum air MS SQL Server, PostgreSQL, Oracle, ach dh’ fhaodadh e bhith comasach air feadhainn eile a chleachdadh
  2. Ag obair le ORM. An toiseach, bhathas an dùil EF Core a chleachdadh, ach aig an ìre dealbhaidh bha sinn deiseil airson beachdachadh air ORM eile
  3. Gineadh fèin-ghluasadach de imrich. A’ gabhail a-steach leasachadh Còd an toiseach, bu mhath leam an fheum air imrich “làmh-sgrìobhadh” a sheachnadh
  4. Còmhstri dreach. Ann an àrainneachd leasachaidh sgaoilte, nuair a thig e còmhla, faodaidh EF Core fulang le còmhstri. Bidh seo na dhuilgheadas mòr leis gu bheil diofar phàirtean den tagradh air an cruthachadh le diofar luchd-leasachaidh, agus mar sin feumaidh tu tòrr ùine a chaitheamh air gach fear.
  5. Sgrìobhainnean adhartach agus taic. An seo, tha e coltach dhuinn, chan eil feum air mìneachadh
  6. Saor. Tha an slat-tomhais cumhach, leis nach eil siostaman gu math daor no daor, ach air leth freagarrach ann an goireasachd, bha sinn cuideachd deiseil airson beachdachadh

Mar thoradh air beagan rannsachaidh, chaidh na roghainnean a leanas a lorg agus bha iad airidh air beachdachadh:

  1. EF Core Imrich
  2. DBup
  3. Taigh-cruinnE
  4. ThinkingHome.Migrator
  5. Neach-imrich fileanta

Agus a-nis beagan nas mionaidiche

Coimeas agus taghadh de shiostaman imrich dàta
Imrich bunaiteach EntityFramework

Gu nàdarra, b 'e seo a' chiad agus a 'phrìomh roghainn a thaghadh. Inneal dùthchasach a dh'obraicheas a-mach às a' bhogsa gun fhìdhlearachd sam bith mun cuairt le tambourine. Tòrr mòr de sgrìobhainnean, oifigeil agus chan ann mar sin, sìmplidheachd, msaa. Ach, tha na gearanan a chaidh a dhèanamh mu EF clasaigeach cuideachd gu math buntainneach airson EF Core.

Mar sin, tha na buannachdan airson EF Core air an comharrachadh:

  • Taic Microsoft, sgrìobhainnean, a’ toirt a-steach coimhearsnachd Ruiseanach, mòr
  • Gineadh fèin-ghluasadach de imrich stèidhichte air CodeFirst
  • An coimeas ri EF 6, chan eil EF Core a’ stòradh dealbh den stòr-dàta tuilleadh. Nuair a bhios tu ag obair le EF Core ann an Code First, chan eil feum air stòr-dàta a chleachdadh tuilleadh
  • Leis gu bheil sinn a’ dannsa bho Code First, tha e comasach aon imrich a dhèanamh chun a h-uile solaraiche ruigsinneachd dàta a tha a dhìth
  • A thaobh solaraichean, tha PostgreSQL a ’faighinn taic, tha Oracle a’ faighinn taic, msaa, msaa, agus eadhon MS SQL Server 

Agus cuideachd na h-eas-bhuannachdan:

  • Bha fuasgladh còmhstri fhathast aig an aon ìre. Feumar imrich a chuir an òrdugh agus dealbhan-camara den stòr-dàta ùrachadh
  • An urra ris na modailean air a bheil na h-imrich air an cruthachadh

DbUp

Coimeas agus taghadh de shiostaman imrich dàta
dbup.gitub.io

Tha DbUp na leabharlann .NET a tha air a chuir a-steach le NuGet agus a chuidicheas le bhith a’ putadh atharrachaidhean gu SQL Server. Bidh e a’ cumail sùil air dè na sgriobtaichean atharrachaidh a chaidh a chur an gnìomh mu thràth agus a’ ruith an fheadhainn a tha riatanach gus an stòr-dàta ùrachadh. Dh'fhàs an leabharlann a-mach à pròiseact airson einnsean blogaidh stòr fosgailte air ASP.NET agus tha e ann fo chead MIT, agus tha an còd air GitHub. Thathas a’ toirt iomradh air imrich a’ cleachdadh T-SQL.

Dè na buannachdan a th 'ann:

  • Taic airson àireamh mhòr de DBMS (MS SQL Server, PstgreSQL, MySQL)
  • Leis gu bheil na sgriobtaichean sgrìobhte ann an T-SQL, tha iad a’ coimhead gu math sìmplidh
  • Tha còmhstri cuideachd air am fuasgladh le bhith a’ cleachdadh SQL

Agus na h-eas-bhuannachdan:

  • Leis a h-uile measgachadh de DBMSn le taic, chan e Oracle aon dhiubh
  • Chan eil e ag eadar-obrachadh le ORM
  • Chan e sgrìobhadh sgriobtaichean T-SQL le làimh a bha sinn ag amas
  • Tha na sgrìobhainnean agus a’ choimhearsnachd cho math, ged a thaobh sgrìobhadh sgriobtaichean SQL is dòcha nach bi feum orra.

Taigh-cruinnE

Coimeas agus taghadh de shiostaman imrich dàta
github.com/chucknorris/roundhouse

Tha an inneal riaghlaidh imrich seo, air a sgaoileadh fo chead Apache 2.0, mar an tè roimhe, a’ ruith air an einnsean imrich T-SQL. A rèir choltais, thug an luchd-leasachaidh prìomhachas do bhith a’ fuasgladh dhuilgheadasan teicnigeach a thaobh taic DBMS, seach a bhith a’ cruthachadh pròiseas leasachaidh comhfhurtail.

Pros:

  • A’ toirt taic don DBMS riatanach (Oracle nam measg)

Cons:

  • Chan eil taic ri Oracle (a bharrachd air Access, nach eil buntainneach dhuinne) air .NET Core, dìreach air .NET Full Framework
  • Chan eil e ag obair le ORM
  • Tha eadhon nas lugha de sgrìobhainnean ann na an inneal roimhe
  • A-rithist - tha imrich air a sgrìobhadh le sgriobtaichean

ThinkingHome.Migrator

Coimeas agus taghadh de shiostaman imrich dàta

Inneal airson imrich sgeamaichean stòr-dàta dreach gu àrd-ùrlar .NET Core, air a sgaoileadh fo chead MIT. Sgrìobh an leasaiche fhèin mun dreach as ùire aige faisg air bliadhna air ais.

Pros:

  • Dealbhaichte airson .NET Core
  • Cur an gnìomh sreath branching de imrich
  • Clàradh imrich air a chuir an gnìomh

Cons:

  • Air ùrachadh mu dheireadh o chionn bliadhna. Tha e coltach nach eil am pròiseact a’ faighinn taic
  • Gun taic bho Oracle (tha an artaigil ag ràdh gu bheil seo air sgàth dìth buileachaidh seasmhach airson .NET Core - ach tha seo bliadhna air ais)
  • Gun ghinealach fèin-ghluasadach de imrich

Gu h-iomlan, tha coltas gealltanach air a’ phròiseact, gu h-àraidh nan robh e gu bhith a’ leasachadh, ach dh’ fheumadh sinn co-dhùnadh a dhèanamh an seo agus an-dràsta.

Neach-imrich fileanta

Coimeas agus taghadh de shiostaman imrich dàta
github.com/fluentmigrator/fluentmigrator

An inneal imrich as mòr-chòrdte le arm mòr de luchd-leantainn. Air a chuairteachadh fo chead Apache 2.0. Mar a chaidh a ràdh anns an tuairisgeul, is e frèam imrich a th 'ann airson .NET, coltach ri Ruby on Rails Migrations. Tha atharrachaidhean air sgeama an stòr-dàta air am mìneachadh ann an clasaichean C#.

Tha buannachdan an seo:

  • Taic airson DBMS a tha a dhìth
  • .NET Core taic
  • Coimhearsnachd mòr leasaichte
  • Tha còmhstri eadar imrich air am fuasgladh ann an òrdugh - tha òrdugh cur an gnìomh imrich air a shònrachadh. A bharrachd air an sin, ma thig còmhstri timcheall air aon eintiteas, nuair a thèid an còd a chur còmhla, thèid a rèiteachadh san aon dòigh ris a’ chòrr den chòd.
  • Tha pròifilean ann a thèid a chur gu bàs às deidh imrich soirbheachail. Agus faodaidh iad gnìomhan seirbheis a ghiùlain.Bha an ùrachadh mu dheireadh mìos air ais, is e sin, tha am pròiseact beò

A thaobh nan minuses, seo iad:

  • Gun ghinealach fèin-ghluasadach de imrich
  • Gun cheangal ri modalan EF
  • Chan eil dealbhan stòr-dàta ann

Dè an roghainn a bha againn?

Coimeas agus taghadh de shiostaman imrich dàta

Thionndaidh na deasbadan teasachaidh timcheall air dà pharamadair - gineadh fèin-ghluasadach de imrich agus fuasgladh sgiobalta air còmhstri. Bha factaran eile mòran nas lugha eagallach. Mar thoradh air an sin, stèidhichte air toraidhean an deasbaid, cho-dhùin an sgioba Fileanta Migrator a chleachdadh sa phròiseact ùr. Leis gun toir fuasgladh còmhstri san àm ri teachd mòran a bharrachd bhuannachdan.

toraidhean

Gu dearbh, chan eil innealan foirfe ann. Mar sin bha againn ri prìomhachas a thoirt do na “miannan” againn airson roghainn a dhèanamh. Ach, airson sgiobaidhean eile agus gnìomhan eile, faodaidh factaran eile a bhith cinnteach. Tha sinn an dòchas gun cuidich an artaigil seo thu gus taghadh a dhèanamh.

Source: www.habr.com

Cuir beachd ann