Kedu ka ị gaghị agba onwe gị n'ụkwụ site na iji Liquibase

Ọ dịghị mgbe ọ mere, ma lee, ọ bụ ọzọ!

Na ọrụ ọzọ, anyị kpebiri iji Liquibase site na mmalite iji zere nsogbu n'ọdịnihu. Dị ka o siri pụta, ọ bụghị ndị otu na-eto eto maara ka esi eji ya eme ihe nke ọma. Emere m ogbako ime ụlọ, nke m kpebiri ịtụgharị ghọọ akụkọ.

Edemede a gụnyere ndụmọdụ na-enye aka na nkọwa nke atọ n'ime ọnyà kacha pụta ìhè ị nwere ike ịdaba mgbe ị na-arụ ọrụ na ngwaọrụ mbugharị nchekwa data, Liquibase karịsịa. Ezubere maka ndị mmepe Java nke ọkwa Junior na Middle, maka ndị mmepe nwere ahụmịhe karịa, ọ nwere ike ịmasị gị ịhazi na ikwugharị ihe enwere ike mara.

Kedu ka ị gaghị agba onwe gị n'ụkwụ site na iji Liquibase

Liquibase na Flyway bụ teknụzụ na-asọmpi bụ isi maka idozi nsogbu nke njikwa ụdị nke usoro mmekọrịta na ụwa Java. Nke mbụ bụ n'efu kpamkpam, na omume, a na-ahọrọkarị ya maka iji ya mee ihe, nke mere na-ahọrọ Liquibase dị ka dike nke mbipụta ahụ. Agbanyeghị, ụfọdụ omume akọwara nwere ike ịbụ nke ọ bụla, dabere na nhazi nke ngwa gị.

Mbugharị mmekọrịta bụ ụzọ mmanye iji nagide mgbanwe adịghị ike nke ụlọ ahịa data mmekọrịta. N'oge ejiji maka OOP, ụdị arụ ọrụ na nchekwa data pụtara na anyị ga-akọwa atụmatụ ahụ otu ugboro ma ghara imetụ ya aka ọzọ. Ma nke bụ eziokwu bụ mgbe niile na ihe na-agbanwe, na mgbanwe na Ọdịdị nke tebụl na-achọrọ nnọọ mgbe. Dị ka o kwesịrị ịdị, usoro ahụ n'onwe ya na-egbu mgbu ma na-adịghị mma.

Agaghị m abanye n'ime nkọwa nke teknụzụ na ntuziaka maka ịgbakwunye ọbá akwụkwọ na ọrụ gị, edela akụkọ zuru oke na isiokwu a:

Na mgbakwunye, enweelarị nnukwu akụkọ gbasara isiokwu ndụmọdụ bara uru:

Atụmatụ

Achọrọ m ịkọrọ m ndụmọdụ na nkọwa, nke a mụrụ site na ọsụsọ, ọbara na ihe mgbu nke idozi nsogbu na mbata.

1. Tupu ịmalite, ị kwesịrị ịgụ akụkụ omume kacha mma na saịtị Liquibase

Ebe ahụ A na-akọwa ihe dị mfe ma dị oke mkpa, na-enweghị nke iji ụlọ akwụkwọ ahụ mee ihe nwere ike ime ka ndụ gị sie ike. Dịka ọmụmaatụ, ụzọ na-abụghị nke nhazi maka njikwa mgbanwe ga-emecha mee ka ọ bụrụ mgbagwoju anya na ịkwaga agbaji. Ọ bụrụ na ị naghị ewepụta mgbanwe ndị na-adabere n'otu n'otu na nhazi nke nchekwa data na mgbagha nke ọrụ n'otu oge, mgbe ahụ enwere ike dị elu na nke a ga-eduga na ule uhie ma ọ bụ gburugburu ebe gbajiri agbaji. Na mgbakwunye, ndụmọdụ maka iji Liquibase na webụsaịtị gọọmentị nwere paragraf gbasara mmepe na nkwenye nke scripts backback yana isi edemede mbugharị. Ọfọn, na isiokwu https://habr.com/ru/post/178665/ enwere ihe atụ nke koodu metụtara mbugharị na usoro mkpọghachi.

2. Ọ bụrụ na ịmalitere iji ngwá ọrụ mbugharị, ekwela ka mmezi akwụkwọ aka na nhazi nchekwa data

Dị ka okwu na-aga: "Ozugbo Persil, Persil mgbe niile." Ọ bụrụ na ngwaọrụ Liquibase amalitela ijikwa ntọala ngwa gị, mgbanwe akwụkwọ ntuziaka ọ bụla na-eduga ozugbo na steeti enweghị nkwekọrịta, na ọkwa ntụkwasị obi na mgbanwe mgbanwe na-aghọ efu. Ihe ize ndụ nwere ike ime - ọtụtụ awa ejiri na iweghachi nchekwa data, na ọnọdụ kachasị njọ - ihe nkesa nwụrụ anwụ. Ọ bụrụ na ndị otu gị nwere "ụlọ akwụkwọ ochie" DBA Architect, jiri ndidi na iche echiche kọwaara ya ka ihe ọjọọ ga-adị ma ọ bụrụ na ọ na-edezi nchekwa data n'ụzọ nke ya site na onye nrụpụta SQL.

3. Ọ bụrụ na ebugharịlarị mgbanwe ahụ na ebe nchekwa, zere idezi

Ọ bụrụ na onye nrụpụta ọzọ dọtara ma tinye mgbanwe nke a ga-edezi ma emechaa, ọ ga-eji okwu dị mma cheta gị mgbe ọ nwetara njehie mgbe ngwa ahụ malitere. Ọ bụrụ na edezi Changeet n'ụzọ ụfọdụ na-adaba na mmepe, ị ga-agbada na mkpọda ọkụ na-amị amị nke hotfixes. Isi nsogbu ahụ dabere na nkwado nke mgbanwe site na hash nchikota - isi usoro nke Liquibase. Mgbe ị na-edezi koodu mgbanwe, nchikota hash na-agbanwe. Ịdezi mgbanwe mgbanwe ga-ekwe omume naanị mgbe enwere ike ibugharị nchekwa data niile site na ọkọ na-enweghị atụfu data. N'okwu a, ịmegharị koodu SQL ma ọ bụ XML nwere ike, n'ụzọ megidere nke ahụ, mee ka ndụ dịkwuo mfe, mee ka ndị ọzọ nwee ike ịgụ ihe. Otu ihe atụ ga-abụ ọnọdụ mgbe, na mmalite nke ngwa ahụ, a na-ahazi atụmatụ nke nchekwa data isi iyi n'ime otu.

4. Nwee nkwenye nchekwa data ndabere ma ọ bụrụ na ọ ga-ekwe omume

N'ebe a, echere m, ihe niile doro anya. Ọ bụrụ na mbugharị na mberede enweghị ihe ịga nke ọma, enwere ike iweghachi ihe niile. Liquibase nwere ngwá ọrụ ntụgharị, ma onye nrụpụta n'onwe ya na-edekwa scripts backback, ha nwere ike inwe nsogbu na otu ihe gbasara nke puru omume dị na isi mgbanwe mgbanwe. Nke a pụtara na ị na-egwu ya na nchekwa ndabere bara uru n'ọnọdụ ọ bụla.

5. Jiri nkwenye nchekwa data ndabere na mmepe ma ọ bụrụ na ọ ga-ekwe omume

Ọ bụrụ na nke a anaghị emegide nkwekọrịta na nzuzo, ọ nweghị data nkeonwe na nchekwa data, ọ naghị atụ aro ka anyanwụ abụọ - tupu itinye ya na sava ndị na-akwaga ndụ, ị nwere ike ịlele otú o si arụ ọrụ na igwe mmepụta ihe wee gbakọọ ihe fọrọ nke nta ka ọ bụrụ 100% nsogbu ndị nwere ike ime n'oge njem.

6. Kpaa nkata na ndị mmepe ndị ọzọ na otu

N'ime usoro mmepe a haziri nke ọma, onye ọ bụla nọ n'òtù ahụ maara onye na-eme ihe. N'ezie, nke a anaghị adịkarị, ya mere, ọ bụrụ na ị na-akwado mgbanwe na nhazi nchekwa data dịka akụkụ nke ọrụ gị, ọ bụ ihe amamihe dị na ya ịkọrọ ndị otu niile banyere nke a. Ọ bụrụ na mmadụ na-eme mgbanwe n'otu aka ahụ, ị ​​kwesịrị ịhazi nke ọma. Ọ bara uru ka gị na ndị ọrụ ibe gị na-ekwurịta okwu ọbụna na njedebe nke ọrụ, ọ bụghị nanị na mmalite. Enwere ike idozi ọtụtụ nsogbu nwere ike ime mgbanwe na ọkwa nyocha koodu.

7. Chee echiche ihe ị na-eme!

Ndụmọdụ dị ka ihe na-egosi onwe ya na-emetụta ọnọdụ ọ bụla. Otú ọ dị, a gaara ezere ọtụtụ nsogbu ma ọ bụrụ na onye mmepụta ahụ enyochaghachikwara ihe ọ na-eme na ihe ọ pụrụ imetụta. Ịrụ ọrụ na mbugharị na-achọ mgbe niile nlebara anya na izi ezi.

Afia

Ka anyị leba anya ugbu a na ọnyà ndị a na-ahụkarị nke ị nwere ike ịdaba ma ọ bụrụ na ị naghị agbaso ndụmọdụ dị n'elu, gịnịkwa, n'ezie, kwesịrị ime?

Ọnọdụ 1. Ndị mmepe abụọ na-agbalị ịgbakwunye mgbanwe ọhụrụ n'otu oge

Kedu ka ị gaghị agba onwe gị n'ụkwụ site na iji Liquibase
Vasya na Petya chọrọ ịmepụta ụdị 4 Changeet n'amaghị banyere ibe ha. Ha mere mgbanwe n'usoro nchekwa data, wee wepụta arịrịọ ịdọrọ, nwere faịlụ mgbanwe dị iche iche. A na-atụ aro usoro a n'okpuru:

Otu esi edozi

  1. N'ụzọ ụfọdụ, ndị ọrụ ibe ga-ekwenyerịrị na usoro mgbanwe mgbanwe ha ga-aga, ka anyị kwuo na ekwesịrị itinye Petin na mbụ.
  2. Otu onye kwesịrị ịwụsa nke ọzọ n'ime ma kaa akara mgbanwe Vasya na ụdị 5. Enwere ike ime nke a site na Cherry Pick ma ọ bụ ngwakọta dị mma.
  3. Mgbe mgbanwe ndị ahụ gasịrị, jide n'aka na ịlele izi ezi nke omume ndị emere.
    N'ezie, usoro Liquibase ga-enye gị ohere ịnwe mgbanwe abụọ 4 mgbanwe na ebe nchekwa, yabụ ị nwere ike ịhapụ ihe niile ka ọ dị. Ya bụ, ị ga-enwe ngbanwe abụọ nke ụdị 4 nwere aha dị iche iche. Site na usoro a, ụdị nchekwa data na-esi ike ịnyagharịa ma emechaa.

Na mgbakwunye, Liquibase, dị ka ụlọ nke ntụrụndụ, na-edobe ọtụtụ ihe nzuzo. Otu n'ime ha bụ igodoCheckSum bara uru, nke pụtara kemgbe ụdị 1.7 na-enye gị ohere ịkọwa uru hash bara uru maka mgbanwe mgbanwe, n'agbanyeghị ihe echekwara na nchekwa data. Akwụkwọ https://www.liquibase.org/documentation/changeset.html kwuru nke a:

Tinye checksum nke echere na ọ bara uru maka mgbanwe a, n'agbanyeghị ihe echekwara na nchekwa data. Ejiri ya mee ihe mgbe ịchọrọ ịgbanwe mgbanweSet na achọghị ka a tụbara njehie na ọdụ data nke ọ na-agba ọsọ (ọ bụghị usoro akwadoro)

Ee, akwadoghị nke a. Ma mgbe ụfọdụ, onye dibịa afa siri ike na-amakwa usoro gbara ọchịchịrị.

Ikpe 2: Mbugharị sitere na data

Kedu ka ị gaghị agba onwe gị n'ụkwụ site na iji Liquibase

Ka anyị kwuo na ịnweghị ike iji ndabere nchekwa data sitere na sava dị ndụ. Petya kere Changeet, nwalere ya na mpaghara, na obi ike zuru oke na ọ dị mma, rịọrọ onye nrụpụta arịrịọ dọtara ya. Naanị bụrụ na onye isi ọrụ ahụ kọwara ma Petya nyochara ya, wee wụsa ya. Mana ntinye na ihe nkesa mmepe adaala.

N'ezie, nke a ga-ekwe omume, ọ dịghịkwa onye na-agaghị egbochi ya na nke a. Nke a na-eme ma ọ bụrụ na ejikọtara ngbanwe nke nhazi tebụl na data akọwapụtara na nchekwa data. N'ụzọ doro anya, ọ bụrụ na nchekwa data Petya jupụtara na naanị ule nyocha, mgbe ahụ ọ nwere ike ọ gaghị ekpuchi nsogbu niile. Dịka ọmụmaatụ, mgbe ị na-ehichapụ tebụl, ọ na-apụta na enwere ndekọ na tebụl ndị ọzọ site na igodo mba ọzọ jikọtara ya na ndekọ na nke a na-ehichapụ. Ma ọ bụ mgbe ị na-agbanwe ụdị kọlụm, ọ na-apụta na ọ bụghị 100% nke data nwere ike ịtụgharị gaa na ụdị ọhụrụ.

Otu esi edozi

  • Dee scripts pụrụ iche nke a ga-etinye n'ọrụ ozugbo yana mbugharị ma weta data ahụ n'ụdị kwesịrị ekwesị. Nke a bụ ụzọ n'ozuzu iji dozie nsogbu nke ịnyefe data na nhazi ọhụrụ mgbe etinyere migrations, mana enwere ike itinye ihe yiri ya n'ihu, na ikpe pụrụ iche. Ụzọ a, n'ezie, adịghị adị mgbe niile, n'ihi na idezi data na sava dị ndụ nwere ike ịdị ize ndụ na ọbụna na-egbu egbu.
  • Ụzọ ọzọ dị aghụghọ bụ dezie mgbanwe mgbanwe dị adị. Ihe isi ike bụ na a ga-eweghachite nchekwa data niile ebe etinyere ya n'ụdị dị adị. Ọ ga-ekwe omume na a ga-amanye ndị otu azụ azụ ka ha wepụta nchekwa data na mpaghara site na ọkọ.
  • Na ụzọ kachasị nke ụwa niile bụ ịnyefe nsogbu data na gburugburu ebe onye nrụpụta, megharịa otu ọnọdụ ahụ ma gbakwunye mgbanwe ọhụrụ, na nke gbajiri agbaji, nke ga-agafe nsogbu ahụ.
    Kedu ka ị gaghị agba onwe gị n'ụkwụ site na iji Liquibase

N'ozuzu, ka nchekwa data ahụ dị ka ihe mejupụtara ya na nchekwa data ihe nkesa mmepụta ihe, ọ ga-abụ na nsogbu na ịkwaga ga-aga ebe dị anya. Na, n'ezie, tupu izipu changeet na ebe nchekwa, ị kwesịrị ị na-eche ọtụtụ ugboro ma ọ bụrụ na ọ ga-agbaji ihe.

Ọnọdụ 3. Liquibase na-amalite iji mee ihe mgbe ọ na-abanye na mmepụta

Ka e were ya na onye isi otu ahụ jụrụ Petya ka ọ tinye Liquibase na ọrụ ahụ, mana ọrụ ahụ adịlarị na mmepụta ma enweelarị usoro nchekwa data dị adị.

N'ihi ya, nsogbu bụ na ọ bụla ihe nkesa ma ọ bụ mmepụta ígwè ọrụ, table data ga-mere si ọkọ, na ugbua dị adị na gburugburu ebe obibi ga-anọgide na a na-agbanwe agbanwe ọnọdụ, dị njikere ịnakwere mgbanwe ọhụrụ.

Otu esi edozi

E nwekwara ọtụtụ ụzọ:

  • Nke mbụ na nke doro anya bụ inwe edemede dị iche nke a ga-eji aka mee mgbe ị na-amalite gburugburu ebe ọhụrụ.
  • Nke abụọ, nke na-edochaghị anya, bụ inwe Mbugharị Liquibase nke dị na ọnọdụ Liquibase dị iche ma tinye ya n'ọrụ. Ị nwere ike ịgụkwu gbasara Okwu Liquibase ebe a: https://www.liquibase.org/documentation/contexts.html. N'ozuzu, nke a bụ usoro na-adọrọ mmasị nke nwere ike itinye n'ọrụ nke ọma, dịka ọmụmaatụ, maka ule.
  • Ụzọ nke atọ nwere ọtụtụ nzọụkwụ. Nke mbụ, a ga-emerịrị njem maka tebụl ndị dị adị. Mgbe ahụ, a ga-etinye ya n'ọrụ na ụfọdụ gburugburu ebe a ga-enweta ego hash ya. Nzọụkwụ ọzọ bụ ịmalite tebụl Liquibase efu na sava anyị na-adịghị efu, ma ị nwere ike iji aka tinye ndekọ nke mgbanwe mgbanwe "dị ka a ga-asị na etinyere" na mgbanwe ndị dị na nchekwa data n'ime tebụl nwere akụkọ ihe mere eme nke itinye mgbanwe. Ya mere, na ihe nkesa dị adị, akụkọ ihe mere eme ga-amalite site na ụdị 2, na gburugburu ọhụrụ niile ga-akpa àgwà otu.
    Kedu ka ị gaghị agba onwe gị n'ụkwụ site na iji Liquibase

Ihe atụ nke anọ: Mbugharị na-ebuwanye ibu ma enweghị ike ịga n'ihu

Na mmalite nke mmepe ọrụ, dịka iwu, a na-eji Liquibase dị ka ndabere nke mpụga, a na-ahazikwa njem niile mgbe ngwa ahụ malitere. Agbanyeghị, ka oge na-aga, ị nwere ike ịsụ ngọngọ n'ọnọdụ ndị a:

  • Mbugharị na-aghọ nnukwu ma na-ewe ogologo oge iji wuchaa.
  • Ọ dị mkpa ịkwaga na mpaghara kesara, dịka ọmụmaatụ, n'ọtụtụ oge nke sava nchekwa data n'otu oge.
    N'okwu a, itinye mbugharị ogologo oge ga-eme ka ọ kwụsịchaa mgbe ngwa malitere. Ọzọkwa, itinye mbugharị n'otu n'otu n'otu ngwa nwere ike ime ka sava dị iche iche nọrọ n'ọnọdụ enweghị mmekọrịta.

Otu esi edozi

N'ọnọdụ ndị dị otú ahụ, ọrụ gị adịlarị, ma eleghị anya ọbụna okenye, Liquibase na-amalite ime dị ka ngwá ọrụ mpụga dị iche. Nke bụ eziokwu bụ na Liquibase, dị ka ọbá akwụkwọ, na-agbakọta n'ime faịlụ ite, ma nwee ike ịrụ ọrụ dị ka ndabere n'ime ọrụ ahụ, yana naanị ya.

Na-anọghị n'ịntanetị, ị nwere ike ịhapụ ngwa nke mbugharị na gburugburu CI / CD gị ma ọ bụ n'ubu siri ike nke sysadmins / ndị na-ebuga gị. Iji mee nke a, ịchọrọ ahịrị iwu Liquibase https://www.liquibase.org/documentation/command_line.html. Na ọnọdụ a, ọ ga-ekwe omume ịmalite ngwa ahụ mgbe emechara njem niile dị mkpa.

nkwubi

N'ezie, enwere ọtụtụ ọnyà ndị ọzọ mgbe ị na-arụ ọrụ na mbugharị nchekwa data, na ọtụtụ n'ime ha chọrọ usoro okike. Ọ dị mkpa ịghọta na ọ bụrụ na ị na-eji ngwá ọrụ ahụ eme ihe n'ụzọ ziri ezi, mgbe ahụ, ọtụtụ n'ime ọnyà ndị a nwere ike izere. Kpọmkwem, aghaghị m ihu nsogbu nile e depụtara n'ụdị dị iche iche ihu, ụfọdụ n'ime ha bụkwa ihe sitere na jambs m. N'ụzọ bụ isi, nke a na-eme, n'ezie, n'ihi nlebara anya, ma mgbe ụfọdụ - n'ihi na ndị omempụ enweghị ike iji ngwá ọrụ ahụ.

isi: www.habr.com

Tinye a comment