Kev sib piv thiab xaiv cov ntaub ntawv tsiv teb tsaws chaw

Kev sib piv thiab xaiv cov ntaub ntawv tsiv teb tsaws chaw

Kev sib piv thiab xaiv cov ntaub ntawv tsiv teb tsaws chaw

Cov qauv ntaub ntawv nyiam hloov pauv thaum lub sijhawm txhim kho, thiab qee lub sijhawm nws tsis sib haum rau cov ntaub ntawv. Tau kawg, cov ntaub ntawv tuaj yeem raug tshem tawm, thiab tom qab ntawd ORM yuav tsim ib qho tshiab uas yuav phim tus qauv, tab sis cov txheej txheem no yuav ua rau poob ntawm cov ntaub ntawv uas twb muaj lawm. Yog li, txoj haujlwm ntawm kev tsiv teb tsaws chaw yog los xyuas kom meej tias, raws li qhov tshwm sim ntawm kev hloov pauv, nws yog synchronized nrog cov qauv ntaub ntawv hauv daim ntawv thov yam tsis tau poob cov ntaub ntawv uas twb muaj lawm.

Hauv tsab xov xwm no, peb xav saib ntau yam cuab yeej los tswj cov ntaub ntawv tsiv teb tsaws chaw. Peb cia siab tias qhov kev tshuaj xyuas no yuav muaj txiaj ntsig zoo rau cov neeg tsim khoom ntsib nrog kev xaiv zoo sib xws.

Hom phiaj

Peb lub tuam txhab tam sim no nquag tsim cov khoom lag luam tom ntej - Docs Security Suite (DSS). Cov neeg rau zaub mov feem yog sau rau hauv .Net Core, thiab Entity Framework Core yog siv los ua DBMS. Thaum tsim ib daim ntawv thov, peb siv Code First mus kom ze.

Daim ntawv thov sau tus qauv yog tsim los ntawm ntau tus neeg tsim khoom tib lub sijhawm - txhua tus yog lub luag haujlwm rau lawv tus kheej qhov kev xav ntawm qhov system.

Cov tiam dhau los ntawm DSS tau siv qhov classic Entity Framework Migrations (EF 6) raws li kev tswj kev tsiv teb tsaws chaw. Txawm li cas los xij, qee qhov kev tsis txaus siab tau sau tawm tsam nws, qhov tseem ceeb yog tias EF tsis muaj txoj hauv kev zoo los daws qhov teeb meem version. Qhov tseeb no tseem ua rau peb chim siab thaum kho cov kab ua ib feem ntawm kev txhawb nqa, yog li peb tau txiav txim siab los xav txog lwm txoj kev xaiv.

Raws li qhov tshwm sim ntawm kev sib tham, cov cai hauv qab no rau kev tswj hwm kev tsiv teb tsaws chaw tau tsim:

  1. Kev them nyiaj yug rau ntau yam DBMSs. MS SQL Server, PostgreSQL, Oracle yog xav tau, tab sis nws muaj peev xwm siv tau lwm tus
  2. Ua haujlwm nrog ORM. Thaum pib, nws tau npaj siv EF Core, tab sis ntawm theem tsim peb tau npaj los xav txog lwm yam ORMs
  3. Auto-generation ntawm migrations. Ua rau kev txhim kho ntawm Code First, kuv xav kom zam qhov yuav tsum tau "sau ntawv" tsiv teb tsaws
  4. Version tsis sib haum. Nyob rau hauv ib puag ncig kev loj hlob, thaum sib koom ua ke, EF Core tuaj yeem raug kev txom nyem los ntawm kev tsis sib haum xeeb. Qhov no dhau los ua qhov teeb meem tseem ceeb vim tias qhov sib txawv ntawm daim ntawv thov yog tsim los ntawm cov neeg tsim khoom sib txawv, yog li koj yuav tsum siv sijhawm ntau rau txhua qhov.
  5. Advanced ntaub ntawv thiab kev txhawb nqa. Ntawm no, zoo li peb, tsis xav tau kev piav qhia
  6. Dawb. Cov txheej txheem yog raws li txoj cai, txij li cov tshuab tsis kim heev lossis kim, tab sis zoo tagnrho hauv kev yooj yim, peb kuj tau npaj los xav txog.

Raws li kev tshawb fawb me ntsis, cov kev xaiv hauv qab no tau pom thiab pom tias tsim nyog rau kev txiav txim siab:

  1. EF Core Migrations
  2. DBup
  3. RoundhouseE
  4. XavHome.Migrator
  5. Cov neeg tsiv teb tsaws chaw zoo

Thiab tam sim no me ntsis ntxiv

Kev sib piv thiab xaiv cov ntaub ntawv tsiv teb tsaws chaw
EntityFramework Core Migrations

Lawm, qhov no yog thawj thiab lub ntsiab kev xaiv. Ib hom twj paj nruag uas ua haujlwm tawm ntawm lub thawv yam tsis muaj kev sib tw nrog ib lub tambourine. Muaj ntau cov ntaub ntawv, official thiab tsis yog li ntawd, simplicity, thiab lwm yam. Txawm li cas los xij, cov lus tsis txaus siab hais txog classic EF kuj tseem cuam tshuam rau EF Core.

Yog li, qhov zoo rau EF Core yog qhov tseem ceeb:

  • Microsoft kev txhawb nqa, cov ntaub ntawv, suav nrog hauv Lavxias, zej zog loj
  • Auto-generation ntawm migrations raws li CodeFirst
  • Piv rau EF 6, EF Core tsis khaws ib qho snapshot ntawm cov ntaub ntawv. Thaum ua haujlwm nrog EF Core hauv Code First, nws tsis tas yuav xa cov ntaub ntawv ntxiv lawm
  • Txij li thaum peb tab tom seev cev los ntawm Code First, nws muaj peev xwm ua tau ib qho kev tsiv teb tsaws chaw rau txhua tus neeg muab kev nkag mus rau cov ntaub ntawv xav tau
  • Hais txog cov chaw muab kev pabcuam, PostgreSQL tau txais kev txhawb nqa, Oracle tau txais kev txhawb nqa, thiab lwm yam, thiab txawm tias MS SQL Server 

Thiab tseem muaj qhov tsis zoo:

  • Kev daws teeb meem tsis sib haum xeeb tseem nyob ntawm tib theem. Nws yog ib qho tsim nyog yuav tsum ua raws li kev tsiv teb tsaws chaw thiab hloov kho cov ntaub ntawv snapshots
  • Nyob ntawm cov qauv uas cov migrations yog generated

DbUp

Kev sib piv thiab xaiv cov ntaub ntawv tsiv teb tsaws chaw
dbup.github.io ib

DbUp yog .NET lub tsev qiv ntawv uas tau teeb tsa los ntawm NuGet thiab pab thawb hloov pauv rau SQL Server. Nws khaws cov ntawv hloov pauv uas twb tau ua tiav thiab khiav cov uas tsim nyog los hloov kho cov ntaub ntawv. Lub tsev qiv ntawv loj hlob tawm ntawm qhov project rau qhib qhov blogging cav ntawm ASP.NET thiab muaj nyob rau hauv daim ntawv tso cai MIT, thiab cov cai yog nyob ntawm GitHub. Kev tsiv teb tsaws tau piav qhia siv T-SQL.

Dab tsi yog qhov zoo:

  • Kev them nyiaj yug rau ntau tus DBMS (MS SQL Server, PstgreSQL, MySQL)
  • Txij li cov ntawv sau hauv T-SQL, lawv saib yooj yim heev
  • Kev tsis sib haum xeeb kuj daws tau siv SQL

Thiab cov cons:

  • Nrog rau tag nrho cov kev txhawb nqa DBMSs, Oracle tsis yog ib qho ntawm lawv
  • Tsis cuam tshuam nrog ORM
  • Sau T-SQL scripts los ntawm tes tsis yog qhov peb tau tsom rau
  • Cov ntaub ntawv thiab cov zej zog yog li ntawd, txawm hais tias hais txog kev sau SQL scripts lawv yuav tsis tsim nyog.

RoundhouseE

Kev sib piv thiab xaiv cov ntaub ntawv tsiv teb tsaws chaw
github.com/chucknorris/roundhouse

Cov cuab yeej tswj kev tsiv teb tsaws chaw no, muab faib raws li Apache 2.0 daim ntawv tso cai, zoo li yav dhau los, khiav ntawm T-SQL migration engine. Pom tau tias, cov neeg tsim khoom tseem ceeb daws teeb meem txog kev txhawb nqa DBMS, tsis yog tsim cov txheej txheem kev txhim kho yooj yim.

Tshaj:

  • Txhawb nqa qhov tsim nyog DBMS (xws li Oracle)

Txais:

  • Oracle (zoo li Access, uas tsis cuam tshuam rau peb) tsis txaus siab ntawm .NET Core, tsuas yog ntawm .NET Full Framework
  • Tsis ua haujlwm nrog ORM
  • Muaj cov ntaub ntawv tsawg dua li cov cuab yeej dhau los
  • Ib zaug ntxiv – migrations yog sau los ntawm scripts

XavHome.Migrator

Kev sib piv thiab xaiv cov ntaub ntawv tsiv teb tsaws chaw

Ib qho cuab yeej rau versioned database schema tsiv teb tsaws mus rau .NET Core platform, faib raws li daim ntawv tso cai MIT. Tus tsim tawm nws tus kheej tau sau txog nws qhov tseeb version yuav luag ib xyoos dhau los.

Tshaj:

  • Tsim los rau .NET Core
  • Tau ua ib ceg kab ke ntawm migrations
  • Ua haujlwm tsiv teb tsaws chaw

Txais:

  • Hloov tshiab kawg ib xyoos dhau los. Pom tau tias qhov project tsis txaus siab
  • Tsis tau txais kev txhawb nqa los ntawm Oracle (kab lus hais tias qhov no yog vim qhov tsis muaj kev ua haujlwm ruaj khov rau .NET Core - tab sis qhov no yog ib xyoos dhau los)
  • Tsis siv neeg tiam ntawm migrations

Zuag qhia tag nrho, qhov project zoo li pheej hmoo, tshwj xeeb tshaj yog tias nws yuav tsim kho, tab sis peb yuav tsum tau txiav txim siab ntawm no thiab tam sim no.

Cov neeg tsiv teb tsaws chaw zoo

Kev sib piv thiab xaiv cov ntaub ntawv tsiv teb tsaws chaw
github.com/fluentmigrator/fluentmigrator

Cov cuab yeej tsiv teb tsaws nrov tshaj plaws nrog cov tub rog loj ntawm cov kiv cua. Muab faib raws li Apache 2.0 daim ntawv tso cai. Raws li tau hais hauv cov lus piav qhia, nws yog lub moj khaum tsiv teb tsaws rau .NET, zoo ib yam li Ruby ntawm Rails Migrations. Cov kev hloov pauv rau cov txheej txheem database tau piav qhia hauv cov chav kawm C#.

Muaj qhov zoo ntawm no:

  • Kev them nyiaj yug rau DBMS xav tau
  • .NET Core txhawb
  • Loj loj hlob zej zog
  • Kev tsis sib haum xeeb ntawm kev tsiv teb tsaws chaw raug daws raws li qhov kev txiav txim ntawm kev ua tiav ntawm kev tsiv teb tsaws yog teev. Tsis tas li ntawd, yog tias muaj kev tsis sib haum xeeb tshwm sim nyob ib puag ncig ib qho chaw, thaum sib koom ua ke cov cai, nws raug daws tib yam li nyob rau hauv seem ntawm cov cai.
  • Muaj cov profiles uas raug tua tom qab ua tiav kev tsiv teb tsaws chaw. Thiab lawv tuaj yeem nqa cov haujlwm pabcuam, qhov hloov tshiab kawg yog ib hlis dhau los, uas yog, txoj haujlwm tseem muaj sia nyob

Raws li rau minuses, ntawm no lawv yog:

  • Tsis siv neeg tiam ntawm migrations
  • Tsis muaj kev sib txuas nrog EF qauv
  • Tsis muaj database snapshots

Peb xaiv dab tsi?

Kev sib piv thiab xaiv cov ntaub ntawv tsiv teb tsaws chaw

Cov kev sib cav sib cav sib cav tau hloov pauv ntawm ob qhov tsis muaj - tsis siv neeg tiam neeg tsiv teb tsaws chaw thiab kev daws teeb meem ntawm kev tsis sib haum xeeb. Lwm yam tseem ceeb tsis tshua txaus ntshai. Yog li ntawd, raws li cov txiaj ntsig ntawm kev sib tham, pab pawg tau txiav txim siab siv Fluent Migrator hauv txoj haujlwm tshiab. Vim tias kev daws teeb meem tsis sib haum xeeb yav tom ntej yuav ua rau muaj txiaj ntsig ntau dua.

tshawb pom

Tau kawg, tsis muaj cov cuab yeej zoo meej. Yog li peb yuav tsum ua qhov tseem ceeb ntawm peb "xav tau" los xaiv. Txawm li cas los xij, rau lwm pab pawg thiab lwm yam haujlwm, lwm yam yuav txiav txim siab. Peb cia siab tias tsab xov xwm no yuav pab koj xaiv.

Tau qhov twg los: www.hab.com

Ntxiv ib saib