Kuenzanisa uye kusarudzwa kwe data migration systems

Kuenzanisa uye kusarudzwa kwe data migration systems

Kuenzanisa uye kusarudzwa kwe data migration systems

Iyo data data inoda kuchinja panguva yekuvandudza, uye pane imwe nguva haichaenderana nedatabase. Ehe, iyo dhatabhesi inogona kubviswa, uye ipapo ORM ichagadzira vhezheni nyowani ichaenderana neiyo modhi, asi maitiro aya achatungamira mukurasikirwa kwe data iripo. Nokudaro, basa rekufambisa hurongwa nderekuona kuti, semugumisiro wekuchinja kwe schema, inofananidzwa nemuenzaniso we data mukushandiswa pasina kurasikirwa nedata iripo.

Muchikamu chino, tinoda kutarisa zvishandiso zvakasiyana-siyana zvekugadzirisa kutama kwe database. Tinovimba kuti ongororo iyi ichave yakakosha kune vanogadzira vakatarisana nesarudzo yakafanana.

Basa

Kambani yedu parizvino iri kushingaira kuvandudza chizvarwa chinotevera chechigadzirwa - Docs Security Suite (DSS). Sevha chikamu chakanyorwa mu.Net Core, uye Entity Framework Core inoshandiswa seDBMS. Kana tichigadzira application, tinoshandisa iyo Code First maitiro.

Iyo application domain modhi inogadzirwa nevakawanda vanogadzira panguva imwe chete - imwe neimwe ine mutoro kune yavo yega inonzwisisika chikamu cheiyo system.

Chizvarwa chekare cheDSS chakashandisa yekare Entity Framework Migrations (EF 6) sehurongwa hwekutama. Nekudaro, zvimwe zvichemo zvakazviunganidzira, chikuru ndechekuti EF inoshaya nzira yekugadzirisa kusawirirana kweshanduro. Chokwadi ichi chichiri kutigumbura pakugadzirisa tsikidzi sechikamu cherutsigiro, saka takafunga kufunga dzimwe sarudzo.

Nekuda kwenhaurirano, zvinotevera zvinodikanwa zvemigration management system zvakaumbwa:

  1. Tsigiro yeDBMS dzakasiyana. MS SQL Server, PostgreSQL, Oracle inodiwa, asi zvinogoneka kushandisa vamwe
  2. Kushanda neORM. Pakutanga, zvakarongwa kushandisa EF Core, asi padanho rekugadzira takagadzirira kufunga mamwe maORM
  3. Auto-generation yekutama. Tichifunga nezvekuvandudzwa kweCode First, ndinoda kudzivirira kukosha kwe "kunyora-kunyora" kutama.
  4. Shanduro inopokana. Munzvimbo yakagoverwa yekusimudzira, kana ichibatanidza, EF Core inogona kutambura nekukakavadzana. Iri rinova dambudziko rakakura nekuti zvikamu zvakasiyana zvekushandisa zvinogadzirwa nevagadziri vakasiyana, saka unofanirwa kupedza nguva yakawanda pane chimwe nechimwe.
  5. Advanced zvinyorwa uye rutsigiro. Pano, zvinoratidzika kwatiri, hapana tsanangudzo inodiwa
  6. Free. Chiyero chacho chine zvirevo, sezvo masisitimu asingadhure zvakanyanya kana kudhura, asi akanakira mune zviri nyore, isu takanga takagadzirira kufunga.

Nekuda kwetsvagiridzo shoma, sarudzo dzinotevera dzakawanikwa uye dzakawanikwa dzichidikanwa kuti dzitariswe:

  1. EF Core Kutama
  2. DBup
  3. RoundhouseE
  4. ThinkingHome.Migrator
  5. Fluent Migrator

Uye zvino zvishoma zvakadzama

Kuenzanisa uye kusarudzwa kwe data migration systems
EntityFramework Core Migrations

Sezvingatarisirwa, iyi yaive yekutanga uye huru sarudzo yekusarudza. Chiridzwa chemuno chinoshanda kunze kwebhokisi pasina chero kutamba netamborini. Huwandu hukuru hwezvinyorwa, zviri pamutemo uye kwete, zviri nyore, nezvimwe. Nekudaro, zvichemo zvakaitwa nezve classic EF zvakare zvine chekuita neEF Core.

Saka, zvakanakira EF Core zvinoratidzwa:

  • Tsigiro yeMicrosoft, zvinyorwa, kusanganisira muchiRussia, nharaunda huru
  • Auto-chizvarwa chekutama kwakavakirwa paCodeFirst
  • Kuenzaniswa neEF 6, EF Core haichachengetera mufananidzo wedhatabhesi. Paunenge uchishanda neEF Core muCode First, hazvichadiwi kuendesa dhatabhesi
  • Sezvo isu tiri kutamba kubva kuCode First, zvinokwanisika kuita kutama kumwe kune vese vanodiwa kuwana data
  • Nezve vanopa, PostgreSQL inotsigirwa, Oracle inotsigirwa, nezvimwe, nezvimwe, uye kunyange MS SQL Server 

Uye zvakare izvo zvisingabatsiri:

  • Kugadzirisa kusawirirana kwakaramba kuri padanho rimwe chete. Izvo zvinodikanwa kuteedzera kutama uye kugadzirisa database snapshots
  • Kutsamira pamamodheru ayo kutama kunogadzirwa

DbUp

Kuenzanisa uye kusarudzwa kwe data migration systems
dbup.github.io

DbUp i.NET raibhurari iyo yakaiswa neNuGet uye inobatsira kusunda shanduko kuSQL Server. Iyo inoteedzera iyo shanduko zvinyorwa zvakatoitwa uye inomhanyisa izvo zvinodiwa kugadzirisa dhatabhesi. Raibhurari iyi yakakura kubva mupurojekiti yeakavhurika sosi yekubloga injini paASP.NET uye iripo pasi perezinesi reMIT, uye kodhi iri paGitHub. Kutama kunotsanangurwa uchishandisa T-SQL.

Ndezvipi zvakanakira:

  • Tsigiro yenhamba huru yeDBMS (MS SQL Server, PstgreSQL, MySQL)
  • Sezvo zvinyorwa zvakanyorwa muT-SQL, zvinotaridzika zviri nyore
  • Kusawirirana kunogadziriswa zvakare uchishandisa SQL

Uye zvakaipira:

  • Nemhando dzese dzakasiyana dzeDBMS dzinotsigirwa, Oracle haisi imwe yacho
  • Haadyidzane neORM
  • Kunyora zvinyorwa zveT-SQL nemaoko handizvo zvatanga tichivavarira
  • Zvinyorwa uye nharaunda ndizvo-zvakadaro, kunyangwe maererano nekunyora SQL zvinyorwa zvingave zvisina basa.

RoundhouseE

Kuenzanisa uye kusarudzwa kwe data migration systems
github.com/chucknorris/roundhouse

Ichi chishandiso chekutungamira chekufambisa, chakagoverwa pasi peiyo Apache 2.0 rezinesi, senge yapfuura, inomhanya paT-SQL yekufambisa injini. Sezviri pachena, ivo vanogadzira vanoisa pamberi pekugadzirisa matambudziko ehunyanzvi maererano nerutsigiro rweDBMS, pane kugadzira yakasununguka nzira yekusimudzira.

Pros:

  • Inotsigira inodiwa DBMS (kusanganisira Oracle)

Cons:

  • Oracle (pamwe neAccess, iyo isina basa kwatiri) haitsigirwi paNET Core, chete pa.NET Full Framework
  • Haishande neORM
  • Pane zvinyorwa zvishoma pane yekare chishandiso
  • Zvakare - kutama kunonyorwa nemagwaro

ThinkingHome.Migrator

Kuenzanisa uye kusarudzwa kwe data migration systems

Chishandiso cheshanduro yedatabase schema migration kuenda kuNET Core platform, yakagoverwa pasi peMIT rezenisi. Iye anovandudza pachake akanyora nezve yazvino vhezheni rinenge gore rapfuura.

Pros:

  • Yakagadzirirwa .NET Core
  • Kutevedzwa kutevedzana kwemapazi ekutama
  • Kutevedzwa kutema miti

Cons:

  • Yakapedzisira kugadziriswa gore rapfuura. Zviri pachena kuti purojekiti haina kutsigirwa
  • Haisi kutsigirwa naOracle (chinyorwa chinoti izvi zvakakonzerwa nekushaikwa kwekuita kwakagadzikana kweNET Core - asi iri gore rapfuura)
  • Hapana chizvarwa cheotomatiki chekutama

Pakazara, chirongwa ichi chinotaridzika kuvimbisa, kunyanya kana chaizokura, asi isu taifanira kuita sarudzo pano uye ikozvino.

Fluent Migrator

Kuenzanisa uye kusarudzwa kwe data migration systems
github.com/fluentmigrator/fluentmigrator

Chishandiso chakakurumbira chekufambisa chine uto guru remafeni. Yakagoverwa pasi peiyo Apache 2.0 rezinesi. Sezvakataurwa mutsanangudzo, iri migration framework ye.NET, yakafanana neRuby paRails Migrations. Shanduko kune database schema inotsanangurwa muC # makirasi.

Pane zvakanakira pano:

  • Tsigiro yeDBMS inodiwa
  • .NET Core rutsigiro
  • Nharaunda huru yakasimukira
  • Kusawirirana pakati pekutama kunogadziriswa sequentially-hurongwa hwekuita kwekutama kunotsanangurwa. Mukuwedzera, kana kukakavara kuchimuka kune chimwe chinhu, pakubatanidza kodhi, inogadziriswa nenzira imwecheteyo mune imwe kodhi.
  • Kune ma profiles anoitwa mushure mekubudirira kutama. Uye ivo vanogona kutakura masevhisi mabasa.Yekupedzisira update yaive mwedzi wapfuura, kureva kuti, purojekiti iri kurarama

Kana ari minuses, heino iwo:

  • Hapana chizvarwa cheotomatiki chekutama
  • Hapana kubatana neEF modhi
  • Hapana snapshots yedatabase

Takasarudza kuitei?

Kuenzanisa uye kusarudzwa kwe data migration systems

Makakatanwa akapisa aitenderedza maparamita maviri - otomatiki chizvarwa chekutama uye kugadzirisa kwakanaka kwekukonana. Zvimwe zvinhu zvaisanyanya kutyisa. Nekuda kweizvozvo, zvichibva pane zvakabuda munhaurirano, timu yakasarudza kushandisa Fluent Migrator muchirongwa chitsva. Nokuti kugadzirisa kusawirirana mune ramangwana kuchaunza zvikomborero zvakawanda.

zvakawanikwa

Zvechokwadi, hapana zvishandiso zvakakwana. Saka taifanira kukoshesa "zvatinoda" kuita sarudzo. Nekudaro, kune zvimwe zvikwata uye mamwe mabasa, zvimwe zvinhu zvinogona kuita sarudzo. Tinovimba kuti chinyorwa ichi chichakubatsira iwe kuita sarudzo.

Source: www.habr.com

Voeg