Hoʻohālikelike a koho i nā ʻōnaehana neʻe ʻikepili

Hoʻohālikelike a koho i nā ʻōnaehana neʻe ʻikepili

Hoʻohālikelike a koho i nā ʻōnaehana neʻe ʻikepili

Hoʻololi ke ʻano o ka ʻikepili i ka wā o ka hoʻomohala ʻana, a i kekahi manawa ʻaʻole ia e pili hou i ka waihona. ʻOiaʻiʻo, hiki ke hoʻopau ʻia ka waihona, a laila e hana ka ORM i kahi mana hou e hoʻohālikelike ai i ke ʻano hoʻohālike, akā ʻo kēia kaʻina hana e alakaʻi i ka nalowale o nā ʻikepili i loaʻa. No laila, ʻo ka hana o ka neʻe ʻana o ka neʻe ʻana e hōʻoia i ka hopena o kahi hoʻololi schema, ua hoʻonohonoho ʻia me ke ʻano ʻikepili i loko o ka noi me ka nalowale ʻole o ka ʻikepili i loaʻa.

Ma kēia ʻatikala, makemake mākou e nānā i nā mea hana like ʻole no ka mālama ʻana i ka neʻe ʻana o ka waihona. Manaʻo mākou e pono kēia loiloi no nā mea hoʻomohala e kū nei i kahi koho like.

Nń Pahuhopu

Ke hoʻomohala nei kā mākou hui i ka hanauna hou o ka huahana - Docs Security Suite (DSS). Ua kākau ʻia ka ʻāpana kikowaena ma .Net Core, a ua hoʻohana ʻia ka Entity Framework Core e like me ka DBMS. I ka hoʻolālā ʻana i kahi noi, hoʻohana mākou i ke ʻano Code First.

Hoʻokumu ʻia ke kumu hoʻohālike domain e kekahi mau mea hoʻomohala i ka manawa like - aia kēlā me kēia kuleana no kā lākou ʻāpana ponoʻī o ka ʻōnaehana.

Ua hoʻohana ka hanauna mua o DSS i ka Entity Framework Migrations (EF 6) ma ke ʻano he ʻōnaehana hoʻokele neʻe. Eia nō naʻe, ua hōʻuluʻulu ʻia kekahi mau hoʻopiʻi kūʻē iā ia, ʻo ka mea nui ʻo ia ka nele o ka EF i kahi ala kūpono no ka hoʻoponopono ʻana i nā paio mana. Ke huhū nei kēia ʻoiaʻiʻo iā mākou i ka hoʻoponopono ʻana i nā pōpoki ma ke ʻano he kākoʻo, no laila ua hoʻoholo mākou e noʻonoʻo i nā koho ʻē aʻe.

Ma muli o ke kūkākūkā ʻana, ua hoʻokumu ʻia nā koi no ka ʻōnaehana hoʻokele migration:

  1. Kākoʻo no nā DBMS like ʻole. Pono ʻo MS SQL Server, PostgreSQL, Oracle, akā hiki ke hoʻohana i nā mea ʻē aʻe
  2. Ke hana nei me ORM. I ka wā mua, ua hoʻolālā ʻia e hoʻohana i ka EF Core, akā i ka pae hoʻolālā ua mākaukau mākou e noʻonoʻo i nā ORM ʻē aʻe
  3. Hoʻokumu ʻakomi o nā neʻe. Ma ka noʻonoʻo ʻana i ka hoʻomohala ʻana o Code First, makemake wau e pale i ka pono e "kākau lima" i nā neʻe
  4. Paio mana. I loko o kahi kaiapuni hoʻomohala mahele, i ka hui ʻana, hiki ke pilikia ʻo EF Core i nā hakakā. He pilikia koʻikoʻi kēia no ka mea ua hana ʻia nā ʻāpana like ʻole o ka noi e nā mea hoʻomohala like ʻole, no laila pono ʻoe e hoʻolilo i ka manawa nui i kēlā me kēia.
  5. Nā palapala kiʻekiʻe a me ke kākoʻo. Ma ʻaneʻi, me he mea lā iā mākou, ʻaʻohe pono e wehewehe
  6. Kuokoa. He kūlana ka criterion, no ka mea, ʻaʻole nui ke kumukūʻai o nā ʻōnaehana, akā kūpono i ka maʻalahi, ua mākaukau mākou e noʻonoʻo.

Ma muli o kahi noiʻi liʻiliʻi, ua ʻike ʻia nā koho aʻe a makemake ʻia e noʻonoʻo:

  1. EF Core Migrations
  2. DBup
  3. Hale PuapuniE
  4. ThinkingHome.Migrator
  5. ʻO ka Migrator maikaʻi

A i kēia manawa kahi kikoʻī hou aku

Hoʻohālikelike a koho i nā ʻōnaehana neʻe ʻikepili
EntityFramework Core Migration

ʻO ka mea maʻamau, ʻo ia ka koho mua a nui e koho ai. He mea kani maoli no ka pahu me ka ʻole o ka pahu kani. ʻO ka nui o nā palapala, kūlana a ʻaʻole pēlā, maʻalahi, etc. Eia nō naʻe, pili pono nā hoʻopiʻi e pili ana i ka EF maʻamau no EF Core.

No laila, ua hōʻike ʻia nā pono no ka EF Core:

  • Kākoʻo Microsoft, palapala, me ka Russian, kaiāulu nui
  • Hoʻokumu ʻakomi o ka neʻe ʻana ma muli o CodeFirst
  • Hoʻohālikelike ʻia me EF 6, ʻaʻole mālama hou ʻo EF Core i kahi kiʻi o ka waihona. Ke hana pū me EF Core ma Code First, ʻaʻole pono e hoʻopololei i kahi waihona
  • No ka mea e hula ana mākou mai Code First, hiki ke hana i hoʻokahi neʻe ʻana i nā mea hoʻolako ʻike ʻike āpau
  • No nā mea hoʻolako, kākoʻo ʻia ʻo PostgreSQL, kākoʻo ʻia ʻo Oracle, etc., etc., a me MS SQL Server 

A me nā hemahema pū kekahi:

  • Ua hoʻomau ka hoʻoholo ʻana i nā paio i ka pae like. Pono e hoʻonohonoho i ka neʻe ʻana a hōʻano hou i nā snapshot database
  • Ka hilinaʻi ʻana i nā kumu hoʻohālike i hana ʻia ai nā neʻe

DbUp

Hoʻohālikelike a koho i nā ʻōnaehana neʻe ʻikepili
dbup.github.io

ʻO DbUp kahi waihona .NET i hoʻokomo ʻia e NuGet a kōkua i ka hoʻololi ʻana i ka SQL Server. Mālama ia i ka hoʻololi ʻana i nā palapala i hoʻokō ʻia a holo i nā mea e pono ai e hoʻonui i ka waihona. Ua ulu ka waihona mai loko mai o kahi papahana no kahi ʻenekini blogging open source ma ASP.NET a aia ma lalo o kahi laikini MIT, a aia ke code ma GitHub. Hōʻike ʻia nā neʻe me ka hoʻohana ʻana iā T-SQL.

He aha nā pōmaikaʻi:

  • Kākoʻo no ka helu nui o DBMS (MS SQL Server, PstgreSQL, MySQL)
  • No ka mea ua kākau ʻia nā palapala ma T-SQL, ua maʻalahi lākou
  • Hoʻoholo ʻia nā paio me ka hoʻohana ʻana iā SQL

A me nā pōʻino:

  • Me nā ʻano like ʻole o nā DBMS i kākoʻo ʻia, ʻaʻole ʻo Oracle kekahi o lākou
  • ʻAʻole pili me ORM
  • ʻO ke kākau ʻana i nā palapala T-SQL ma ka lima ʻaʻole ia ka mea a mākou i manaʻo ai
  • ʻO ka palapala a me ke kaiāulu he mea like, ʻoiai ma ke ʻano o ke kākau ʻana i nā palapala SQL ʻaʻole pono lākou.

Hale PuapuniE

Hoʻohālikelike a koho i nā ʻōnaehana neʻe ʻikepili
github.com/chucknorris/roundhouse

ʻO kēia mea hana hoʻokele neʻe, i māhele ʻia ma lalo o ka laikini Apache 2.0, e like me ka mea ma mua, e holo ana ma ka ʻenekini migration T-SQL. ʻIke ʻia, ua hoʻoholo mua nā mea hoʻomohala i ka hoʻoponopono ʻana i nā pilikia ʻenehana e pili ana i ke kākoʻo DBMS, ma mua o ka hana ʻana i kahi kaʻina hoʻomohala ʻoluʻolu.

Kākoʻo:

  • Kākoʻo i ka DBMS pono (me Oracle)

ʻAla:

  • ʻAʻole kākoʻo ʻia ʻo Oracle (a me Access, he mea pili ʻole iā mākou) ma .NET Core, ma .NET Full Framework wale nō.
  • ʻAʻole hana me ORM
  • ʻOi aku ka liʻiliʻi o nā palapala ma mua o ka mea hana mua
  • Eia hou - ua kākau ʻia nā neʻe e nā palapala

ThinkingHome.Migrator

Hoʻohālikelike a koho i nā ʻōnaehana neʻe ʻikepili

He mea paahana no ka neʻe ʻana o ka papa kuhikuhi waihona waihona i ka .NET Core platform, i māhele ʻia ma lalo o ka laikini MIT. Ua kākau ka mea hoʻomohala iā ia iho e pili ana i kāna mana hou loa kokoke i hoʻokahi makahiki i hala.

Kākoʻo:

  • Hoʻolālā ʻia no .NET Core
  • Hoʻokō ʻia kahi ʻano lālā o ka neʻe ʻana
  • Hoʻokō ʻia ka logging migration

ʻAla:

  • Hoʻoponopono hope i hoʻokahi makahiki i hala. ʻAʻole kākoʻo ʻia ka papahana
  • ʻAʻole i kākoʻo ʻia e Oracle (ua ʻōlelo ka ʻatikala ma muli o ka nele o kahi hoʻokō paʻa no .NET Core - akā he makahiki i hala aku nei)
  • ʻAʻohe hana ʻakomi o ka neʻe ʻana

Ma ke ʻano holoʻokoʻa, ʻike maikaʻi ʻia ka papahana, ʻoiai inā e hoʻomohala ʻia, akā pono mākou e hoʻoholo ma aneʻi a i kēia manawa.

ʻO ka Migrator maikaʻi

Hoʻohālikelike a koho i nā ʻōnaehana neʻe ʻikepili
github.com/fluentmigrator/fluentmigrator

ʻO ka mea hana migration kaulana loa me kahi pūʻali koa nui o nā mea pā. Hāʻawi ʻia ma lalo o ka laikini Apache 2.0. E like me ka mea i ʻōlelo ʻia ma ka wehewehe ʻana, he ʻano neʻe ia no .NET, e like me Ruby on Rails Migrations. Hōʻike ʻia nā hoʻololi i ka schema database ma nā papa C#.

Aia nā pōmaikaʻi ma ʻaneʻi:

  • Kākoʻo no DBMS pono
  • Kākoʻo .NET Core
  • Kaiāulu ulu nui
  • Hoʻoholo ʻia nā paio ma waena o ka neʻe ʻana - ua kuhikuhi ʻia ke kauoha o ka hoʻokō ʻana i nā neʻe. Eia kekahi, inā kū mai kahi paio a puni hoʻokahi hui, i ka hoʻohui ʻana i ke code, hoʻoholo ʻia e like me ke koena o ke code.
  • Aia nā ʻaoʻao i hoʻokō ʻia ma hope o ka neʻe ʻana. A hiki iā lākou ke lawe i nā hana lawelawe. ʻO ka mea hou hope loa he mahina i hala aku nei, ʻo ia hoʻi, ke ola nei ka papahana

No nā minus, eia lākou:

  • ʻAʻohe hana ʻakomi o ka neʻe ʻana
  • ʻAʻohe pili me nā hiʻohiʻona EF
  • ʻAʻohe paʻi kiʻi waihona

He aha kā mākou koho?

Hoʻohālikelike a koho i nā ʻōnaehana neʻe ʻikepili

ʻO nā hoʻopaʻapaʻa hahana i hoʻohuli ʻia ma kahi o ʻelua mau ʻāpana - ka hana maʻalahi o ka neʻe ʻana a me ka hoʻonā kūpono o nā paio. ʻO nā kumu ʻē aʻe i emi iki ka makaʻu. ʻO ka hopena, ma muli o nā hopena o ke kūkākūkā, ua hoʻoholo ka hui e hoʻohana iā Fluent Migrator i ka papahana hou. No ka mea, ʻoi aku ka maikaʻi o ka hoʻoponopono ʻana i nā paio i ka wā e hiki mai ana.

haʻina

ʻOiai,ʻaʻohe mea hana kūpono. No laila, pono mākou e koho mua i kā mākou "makemake". Eia nō naʻe, no nā hui ʻē aʻe a me nā hana ʻē aʻe, hiki ke hoʻoholo i nā kumu ʻē aʻe. Manaʻo mākou e kōkua kēia ʻatikala iā ʻoe e hana i kahi koho.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka