Mar nach dèan thu losgadh ort fhèin nad chas a ’cleachdadh Liquibase

Cha do thachair e a-riamh, agus seo e a-rithist!

Air an ath phròiseact, chuir sinn romhainn Liquibase a chleachdadh bhon fhìor thoiseach gus duilgheadasan a sheachnadh san àm ri teachd. Mar a thionndaidh e a-mach, chan eil fios aig a h-uile ball den sgioba òg mar a chleachdas iad e gu ceart. Rinn mi bùth-obrach a-staigh, agus chuir mi romhpa tionndadh gu artaigil.

Tha an artaigil seo a 'toirt a-steach molaidhean feumail agus tuairisgeul air trì de na duilgheadasan as follaisiche as urrainn dhut tuiteam a-steach nuair a bhios tu ag obair le innealan imrich stòr-dàta co-cheangailte, Liquibase gu sònraichte. Air a dhealbhadh airson luchd-leasachaidh Java aig ìre Òigridh is Meadhanach, airson luchd-leasachaidh nas eòlaiche dh’ fhaodadh gum biodh e inntinneach a bhith a’ structaradh agus ag ath-aithris na tha fios mu thràth.

Mar nach dèan thu losgadh ort fhèin nad chas a ’cleachdadh Liquibase

Is e Liquibase agus Flyway na prìomh theicneòlasan farpaiseach airson fuasgladh fhaighinn air duilgheadasan smachd dreach air structaran dàimheach ann an saoghal Java. Tha a 'chiad fhear gu tur an-asgaidh, ann an cleachdadh tha e nas trice air a thaghadh airson a chleachdadh, agus is e sin as coireach gun deach Liquibase a thaghadh mar ghaisgeach an fhoillseachaidh. Ach, faodaidh cuid de na cleachdaidhean a chaidh a mhìneachadh a bhith coitcheann, a rèir ailtireachd an tagraidh agad.

Tha imrich dàimheach mar dhòigh èiginneach air dèiligeadh ri sùbailteachd lag stòran dàta dàimheach. Ann an àm fasan airson OOP, bha an stoidhle a bhith ag obair leis an stòr-dàta a’ ciallachadh gum biodh sinn a’ toirt cunntas air an sgeama aon uair agus gun a bhith a’ suathadh ris a-rithist. Ach is e an fhìrinn an-còmhnaidh gu bheil cùisean ag atharrachadh, agus gu tric feumar atharrachadh air structar bùird. Gu nàdarra, tha am pròiseas fhèin pianail agus mì-thlachdmhor.

Cha toir mi a-steach don tuairisgeul air an teicneòlas agus an stiùireadh airson an leabharlann a chuir ris a’ phròiseact agad, chaidh artaigilean gu leòr a sgrìobhadh air a’ chuspair seo:

A bharrachd air an sin, bha artaigil math ann mu thràth air cuspair molaidhean feumail:

Советы

Tha mi airson mo chomhairle agus mo bheachdan a cho-roinn, a rugadh tron ​​​​fallas, an fhuil agus am pian mu bhith a’ fuasgladh dhuilgheadasan le imrich.

1. Mus tòisich thu, bu chòir dhut an earrann cleachdaidhean as fheàrr a leughadh air làrach Liquibase

An sin tha rudan sìmplidh ach glè chudromach air am mìneachadh, às aonais sin faodaidh cleachdadh an leabharlainn do bheatha a dhèanamh toinnte. Mar eisimpleir, nas luaithe no nas fhaide air adhart bidh dòigh-obrach neo-structarail a thaobh riaghladh atharraichean a’ leantainn gu troimh-chèile agus imrich briste. Mura cuir thu a-steach atharrachaidhean a tha an urra ri chèile ann an structar an stòr-dàta agus loidsig sheirbheisean aig an aon àm, tha coltachd àrd ann gun toir seo gu dearg deuchainnean no àrainneachd briste. A bharrachd air an sin, tha paragraf anns na molaidhean airson Liquibase a chleachdadh air an làrach-lìn oifigeil mu leasachadh agus dearbhadh sgriobtaichean rollaidh air ais còmhla ris na prìomh sgriobtaichean imrich. Uill, anns an artaigil https://habr.com/ru/post/178665/ tha eisimpleirean ann de chòd co-cheangailte ri imrich agus an dòigh air ais air ais.

2. Ma thòisich thu a 'cleachdadh innealan imrich, na leig le ceartachaidhean làimhe ann an structar an stòr-dàta

Mar a tha an abairt ag ràdh: "Aon uair Persil, an-còmhnaidh Persil." Ma tha bunait an tagraidh agad air tòiseachadh air a riaghladh le innealan Liquibase, bidh atharrachaidhean làimhe sam bith sa bhad a’ leantainn gu staid neo-chunbhalach, agus bidh an ìre earbsa ann an atharraichean a’ fàs neoni. Cunnartan a dh’ fhaodadh a bhith ann - grunn uairean a thìde air an caitheamh air an stòr-dàta ath-nuadhachadh, anns an t-suidheachadh as miosa - frithealaiche marbh. Ma tha Ailtire DBA “seann sgoil” aig an sgioba agad, mìnich dha gu foighidneach agus gu smaoineachail dè cho dona ‘s a bhios cùisean ma dheasaicheas e an stòr-dàta na dhòigh fhèin bhon leasaiche SQL gun chumhachan.

3. Ma tha an changeet mar-thà air a phutadh chun an ath-reic, seachain deasachadh

Ma tharraing leasaiche eile agus gun do chuir e an sàs inneal-atharrachaidh a thèid a dheasachadh nas fhaide air adhart, bidh e gu cinnteach a’ cuimhneachadh ort le facal coibhneil nuair a gheibh e mearachd nuair a thòisicheas an tagradh. Ma tha deasachadh an atharraichean ann an dòigh air choreigin a’ dol a-steach don leasachadh, feumaidh tu a dhol sìos leathad sleamhainn hotfixes. Tha brìgh an duilgheadas an urra ri dearbhadh atharrachaidhean le hash sum - prìomh inneal Liquibase. Nuair a bhios tu a’ deasachadh a’ chòd changeet, bidh an hash sum ag atharrachadh. Chan eil e comasach a bhith a’ deasachadh atharraichean ach nuair a tha e comasach an stòr-dàta gu lèir a chuir a-steach bhon fhìor thoiseach gun a bhith a’ call dàta. Anns a 'chùis seo, faodaidh ath-nuadhachadh còd SQL no XML, air an làimh eile, beatha a dhèanamh nas fhasa, imrich a dhèanamh nas fhasa a leughadh. Bhiodh eisimpleir mar shuidheachadh nuair, aig toiseach an tagraidh, chaidh sgeama an stòr-dàta stòr-dàta a cho-òrdanachadh taobh a-staigh na sgioba.

4. Dèan cùl-taic den stòr-dàta dearbhte ma ghabhas e dèanamh

An seo, tha mi a’ smaoineachadh, tha a h-uile dad soilleir. Mura h-eil an imrich soirbheachail gu h-obann, faodar a h-uile càil a thilleadh air ais. Tha inneal rollaidh air ais aig Liquibase, ach tha na sgriobtaichean roll air ais cuideachd air an sgrìobhadh leis an leasaiche fhèin, agus faodaidh duilgheadasan a bhith aca leis an aon coltachd agus a tha anns na prìomh sgriobtaichean changeet. Tha seo a’ ciallachadh gu bheil e feumail a bhith ga chluich sàbhailte le cùl-taic ann an suidheachadh sam bith.

5. Cleachd cùl-taic stòr-dàta dearbhte ann an leasachadh ma ghabhas sin dèanamh

Mura h-eil seo a’ dol an-aghaidh cùmhnantan agus prìobhaideachd, chan eil dàta pearsanta san stòr-dàta, agus chan eil cuideam mar dhà ghrian ann - mus cuir thu a-steach e air frithealaichean imrich beò, faodaidh tu sgrùdadh a dhèanamh air mar a tha e ag obair air inneal an leasaiche agus obrachadh a-mach faisg air 100% duilgheadasan a dh’ fhaodadh a bhith ann aig àm imrich.

6. Bruidhinn ri luchd-leasachaidh eile air an sgioba

Ann am pròiseas leasachaidh air a dheagh eagrachadh, tha fios aig a h-uile duine san sgioba cò tha a’ dèanamh dè. Ann an da-rìribh, gu tric chan eil seo fìor, mar sin, ma tha thu ag ullachadh atharrachaidhean ann an structar an stòr-dàta mar phàirt den obair agad, tha e ciallach fios a chuir chun sgioba gu lèir mu dheidhinn seo. Ma tha cuideigin a 'dèanamh atharrachaidhean ann an co-shìnte, bu chòir dhut a chur air dòigh gu cùramach. Is fhiach conaltradh le co-obraichean eadhon aig deireadh na h-obrach, chan ann a-mhàin aig an toiseach. Faodar mòran dhuilgheadasan a dh’ fhaodadh a bhith ann le atharraichean fhuasgladh aig ìre ath-bhreithneachaidh còd.

7. Smaoinich dè tha thu a' dèanamh!

Comhairle a tha coltach gu fèin-fhollaiseach a tha iomchaidh airson suidheachadh sam bith. Ach, dh’ fhaodadh mòran dhuilgheadasan a bhith air an seachnadh nam biodh an leasaiche air mion-sgrùdadh a dhèanamh a-rithist air na bha e a’ dèanamh agus dè a dh’ fhaodadh buaidh a thoirt air. Feumaidh a bhith ag obair le imrich an-còmhnaidh aire a bharrachd agus mionaideachd.

Gaisgich

Nach toir sinn sùil a-nis air na ribeachan àbhaisteach as urrainn dhut tuiteam a-steach mura lean thu a’ chomhairle gu h-àrd, agus dè, gu dearbh, a bu chòir a dhèanamh?

Suidheachadh 1. Tha dà leasaiche a' feuchainn ri atharraichean ùra a chur ris aig an aon àm

Mar nach dèan thu losgadh ort fhèin nad chas a ’cleachdadh Liquibase
Tha Vasya agus Petya airson dreach 4 changeet a chruthachadh gun a bhith eòlach air a chèile. Rinn iad atharrachaidhean air structar an stòr-dàta, agus chuir iad a-steach iarrtas tarraing, le diofar fhaidhlichean changeet. Tha an uidheamachd a leanas air a mholadh gu h-ìosal:

Ciamar a co-dhùnadh

  1. Ann an dòigh air choreigin, feumaidh co-obraichean aontachadh air an òrdugh anns am bu chòir na h-atharrachaidhean aca a dhol, canaidh sinn gum bu chòir Petin a chuir an sàs an toiseach.
  2. Bu chòir do aon neach an tè eile a dhòrtadh a-steach agus an t-atharrachadh aig Vasya a chomharrachadh le dreach 5. Faodar seo a dhèanamh tro Cherry Pick no tro cho-aonadh grinn.
  3. Às deidh na h-atharrachaidhean, dèan cinnteach gun dèan thu sgrùdadh air èifeachd nan gnìomhan a chaidh a dhèanamh.
    Gu dearbh, leigidh na h-innealan Liquibase leat dà dhreach atharraichte 4 a bhith agad san stòr, gus an urrainn dhut a h-uile càil fhàgail mar a tha e. Is e sin, bidh dìreach dà ath-sgrùdadh agad air dreach 4 le ainmean eadar-dhealaichte. Leis an dòigh-obrach seo, bidh tionndaidhean stòr-dàta gu math duilich a sheòladh nas fhaide air adhart.

A bharrachd air an sin, tha Liquibase, mar dhachaighean hobbits, a 'cumail mòran dhìomhaireachd. Is e aon dhiubh an iuchair dligheachCheckSum, a tha air nochdadh bho dhreach 1.7 agus a leigeas leat luach hash dligheach a shònrachadh airson atharrachadh sònraichte, ge bith dè a tha air a stòradh san stòr-dàta. Sgrìobhainnean https://www.liquibase.org/documentation/changeset.html ag ràdh na leanas:

Cuir seic ris a thathas a’ meas dligheach airson an changeSet seo, ge bith dè a tha air a stòradh san stòr-dàta. Air a chleachdadh gu sònraichte nuair a dh’ fheumas tu changeSet atharrachadh agus nach eil thu airson gun tèid mearachdan a thilgeil air stòran-dàta air a bheil e air ruith mar-thà (chan e modh-obrach a thathar a’ moladh)

Tha, chan eil seo air a mholadh. Ach uaireannan bidh draoidh aotrom làidir cuideachd a ’maighstireachd dòighean dorcha.

Cùis 2: Imrich air a stiùireadh le dàta

Mar nach dèan thu losgadh ort fhèin nad chas a ’cleachdadh Liquibase

Canaidh sinn nach urrainn dhut cùl-taic stòr-dàta a chleachdadh bho luchd-frithealaidh beò. Chruthaich Petya inneal-atharrachaidh, rinn e deuchainn air gu h-ionadail, agus le làn mhisneachd gu robh e ceart, rinn e iarrtas tarraing don leasaiche. Dìreach air eagal, shoilleirich stiùiriche a ’phròiseict an do rinn Petya sùil air, agus an uairsin dhòirt e a-steach e. Ach tha an cleachdadh air an fhrithealaiche leasachaidh air tuiteam.

Gu dearbh, tha seo comasach, agus chan eil duine saor bho seo. Bidh seo a’ tachairt ma tha atharrachaidhean air structar a’ bhùird ceangailte ann an dòigh air choireigin ri dàta sònraichte bhon stòr-dàta. Gu dearbh, ma tha stòr-dàta Petya air a lìonadh le dìreach dàta deuchainn, is dòcha nach bi e a’ còmhdach a h-uile cùis trioblaid. Mar eisimpleir, nuair a sguabas tu às clàr, tha e a’ tionndadh a-mach gu bheil clàran ann an clàran eile le iuchair Chèin co-cheangailte ri clàran anns an fhear a chaidh a dhubhadh às. No nuair a dh'atharraicheas tu an seòrsa colbh, tha e a 'tionndadh a-mach nach urrainn 100% den dàta a thionndadh gu seòrsa ùr.

Ciamar a co-dhùnadh

  • Sgrìobh sgriobtaichean sònraichte a thèid a chuir an sàs aon uair còmhla ris an imrich agus thoir an dàta a-steach don fhoirm cheart. Is e dòigh choitcheann a tha seo gus fuasgladh fhaighinn air an duilgheadas a thaobh gluasad dàta gu structaran ùra às deidh imrich a chuir an sàs, ach faodar rudeigin coltach ris a chuir an sàs roimhe seo, ann an cùisean sònraichte. Chan eil an t-slighe seo, gu dearbh, an-còmhnaidh ri fhaighinn, oir faodaidh deasachadh dàta air frithealaichean beò a bhith cunnartach agus eadhon marbhtach.
  • Is e dòigh dhoirbh eile a bhith a’ deasachadh atharraichean gnàthaichte. Is e an duilgheadas a th’ ann gum feumar a h-uile stòr-dàta far an deach a chuir an sàs mar a tha e mar-thà ath-nuadhachadh. Tha e gu math comasach gun tèid toirt air an sgioba backend gu lèir an stòr-dàta a roiligeadh suas gu h-ionadail bhon fhìor thoiseach.
  • Agus is e an dòigh as uile-choitcheann an duilgheadas dàta a ghluasad gu àrainneachd an leasaiche, ath-chruthachadh an aon suidheachadh agus cuir atharraichean ùr, gu fear briste, a bheir seachad an duilgheadas.
    Mar nach dèan thu losgadh ort fhèin nad chas a ’cleachdadh Liquibase

San fharsaingeachd, mar as motha a bhios an stòr-dàta coltach ann an sgrìobhadh ri stòr-dàta an fhrithealaiche riochdachaidh, is ann as dualtaiche a bhios duilgheadasan le imrich a’ dol fada. Agus, gu dearbh, mus cuir thu na h-atharrachaidhean chun an stòr, bu chòir dhut smaoineachadh grunn thursan ma bhriseas e rudeigin.

Suidheachadh 3. Bidh Liquibase a’ tòiseachadh air a chleachdadh às deidh dha a dhol a-steach gu cinneasachadh

Osbarr dh’ iarr ceannard na sgioba air Petya Liquibase a thoirt a-steach don phròiseact, ach tha am pròiseact ga riochdachadh mar-thà agus tha structar stòr-dàta ann mu thràth.

A rèir sin, is e an duilgheadas a th’ ann, air frithealaichean ùra no innealan leasaiche, gum feumar dàta a’ bhùird ath-chruthachadh bhon fhìor thoiseach, agus feumaidh an àrainneachd a th’ ann mar-thà fuireach ann an staid chunbhalach, a bhith deiseil airson gabhail ri atharraichean ùra.

Ciamar a co-dhùnadh

Tha grunn dhòighean ann cuideachd:

  • Is e a’ chiad fhear agus as follaisiche sgriobt air leth a bhith agad a dh’ fheumar a chuir an sàs le làimh nuair a thòisicheas tu àrainneachd ùr.
  • Is e an dàrna fear, nach eil cho follaiseach, imrich Liquibase a bhith ann an Co-theacsa Liquibase eadar-dhealaichte agus a chuir an sàs. Faodaidh tu barrachd a leughadh mu cho-theacsa Liquibase an seo: https://www.liquibase.org/documentation/contexts.html. San fharsaingeachd, is e inneal inntinneach a tha seo a dh’ fhaodar a chuir an sàs gu soirbheachail, mar eisimpleir, airson deuchainn.
  • Tha an treas slighe air a dhèanamh suas de ghrunn cheumannan. An toiseach, feumar imrich a chruthachadh airson clàran a tha ann mar-thà. An uairsin feumar a chuir an sàs ann an cuid de àrainneachd agus mar sin gheibhear a hash sum. Is e an ath cheum bùird falamh Liquibase a thòiseachadh air an t-seirbheisiche neo-fholamh againn, agus faodaidh tu clàr de dh’ atharraichean “mar gum biodh iad air an cur an sàs” a chuir le làimh leis na h-atharrachaidhean san stòr-dàta mar-thà a-steach don chlàr leis an eachdraidh mu bhith a’ cur an sàs atharraichean. Mar sin, air frithealaiche a tha ann mar-thà, tòisichidh an eachdraidh bho dhreach 2, agus bidh gach àrainneachd ùr gan giùlan fhèin san aon dòigh.
    Mar nach dèan thu losgadh ort fhèin nad chas a ’cleachdadh Liquibase

Scenario 4: Bidh imrich a’ fàs mòr agus chan urrainn dhaibh cumail suas

Aig toiseach leasachadh seirbheis, mar riaghailt, tha Liquibase air a chleachdadh mar eisimeileachd bhon taobh a-muigh, agus tha gach imrich air a phròiseasadh nuair a thòisicheas an tagradh. Ach, thar ùine, faodaidh tu tuiteam air na cùisean a leanas:

  • Bidh imrich a’ fàs mòr agus bheir e ùine mhòr airson a chrìochnachadh.
  • Tha feum air imrich ann an àrainneachdan sgaoilte, mar eisimpleir, air grunn shuidheachaidhean de luchd-frithealaidh stòr-dàta aig an aon àm.
    Anns a’ chùis seo, le bhith a’ cleachdadh imrich ro fhada thig ùine a-mach nuair a thòisicheas an tagradh. Cuideachd, le bhith a’ cur imrichean an sàs a rèir iarrtas faodaidh sin leantainn gu diofar frithealaichean a bhith ann an staid a-mach à sioncranachadh.

Ciamar a co-dhùnadh

Ann an leithid de shuidheachaidhean, tha do phròiseact mòr mar-thà, is dòcha eadhon inbheach, agus tha Liquibase a ’tòiseachadh ag obair mar inneal taobh a-muigh air leth. Is e an fhìrinn gu bheil Liquibase, mar leabharlann, air a chruinneachadh ann am faidhle jar, agus faodaidh e obrachadh mar eisimeileachd taobh a-staigh a ’phròiseict, a bharrachd air a bhith na aonar.

Far-loidhne, faodaidh tu tagradh imrich fhàgail don àrainneachd CI / CD agad no gu guailnean làidir do sysadmins / luchd-cleachdaidh. Gus seo a dhèanamh, feumaidh tu loidhne-àithne Liquibase https://www.liquibase.org/documentation/command_line.html. Anns a ’mhodh seo, bidh e comasach an tagradh a chuir air bhog às deidh na h-imrichean riatanach uile a chrìochnachadh.

co-dhùnadh

Gu dearbh, tha tòrr a bharrachd dhuilgheadasan ann nuair a bhios tu ag obair le imrich stòr-dàta, agus tha feum aig mòran dhiubh air dòigh-obrach cruthachail. Tha e cudromach tuigsinn ma chleachdas tu an inneal gu ceart, faodar a ’mhòr-chuid de na ribeachan sin a sheachnadh. Gu sònraichte, bha agam ri aghaidh a thoirt air na duilgheadasan uile air an liostadh ann an diofar chruthan, agus bha cuid dhiubh mar thoradh air na jambs agam. Gu bunaiteach, bidh seo a ’tachairt, gu dearbh, air sgàth dìth aire, ach uaireannan - air sgàth neo-chomas eucorach an inneal a chleachdadh.

Source: www.habr.com

Cuir beachd ann