Conas gan tú féin a shoot sa chos ag baint úsáide as Liquibase

Níor tharla sé riamh, agus anseo tá sé arís!

Ar an gcéad tionscadal eile, shocraigh muid úsáid a bhaint as Liquibase ón tús chun fadhbanna a sheachaint sa todhchaí. Mar a tharla sé, níl a fhios ag gach ball foirne óga conas é a úsáid i gceart. Rinne mé ceardlann inmheánach, a chinn mé ansin a iompú isteach i alt.

Áiríonn an t-alt seo leideanna cabhracha agus cur síos ar thrí cinn de na gaistí is soiléire ar féidir leat titim isteach agus tú ag obair le huirlisí aistrithe bunachar sonraí coibhneasta, Liquibase go háirithe. Deartha d'fhorbróirí Java Sóisearach agus Meánleibhéil, d'fhéadfadh sé go mbeadh sé suimiúil d'fhorbróirí a bhfuil níos mó taithí acu struchtúrú agus athrá a dhéanamh ar a bhfuil ar eolas cheana féin.

Conas gan tú féin a shoot sa chos ag baint úsáide as Liquibase

Is iad Liquibase agus Flyway na príomhtheicneolaíochtaí iomaíocha chun na fadhbanna a bhaineann le rialú leagan ar struchtúir ghaolmhara i saol Java a réiteach. Tá an chéad cheann go hiomlán saor in aisce, go praiticiúil is minic a roghnaítear é le húsáid, agus is é sin an fáth a roghnaíodh Liquibase mar laoch an fhoilseacháin. D’fhéadfadh cuid de na cleachtais a gcuirtear síos orthu a bheith cineálach, áfach, ag brath ar ailtireacht d’iarratais.

Is bealach éigeantach iad ascnaimh choibhneasta chun déileáil le solúbthacht lag na stórtha sonraí coibhneasta. I ré an fhaisin do OOP, chiallaigh stíl na hoibre leis an mbunachar sonraí go ndéanfaimis cur síos ar an scéimre uair amháin agus gan teagmháil a dhéanamh leis arís. Ach is é fírinne an scéil i gcónaí go n-athraíonn rudaí, agus is gá athruithe ar struchtúr na dtáblaí go minic. Ar ndóigh, tá an próiseas féin pianmhar agus míthaitneamhach.

Ní scrúdóidh mé an cur síos ar an teicneolaíocht agus na treoracha chun an leabharlann a chur le do thionscadal, tá go leor alt scríofa ar an ábhar seo:

Ina theannta sin, bhí alt iontach cheana féin ar an ábhar leideanna úsáideacha:

Советы

Ba mhaith liom mo chomhairle agus mo chuid tuairimí a roinnt, a rugadh tríd an allas, an fhuil agus an phian a bhaineann le fadhbanna a réiteach le himirce.

1. Sula dtosaíonn tú, ba chóir duit an roinn dea-chleachtais ar Líne Liquibase

déantar cur síos ar rudaí simplí ach an-tábhachtacha, agus dá uireasa is féidir le húsáid na leabharlainne do shaol casta a dhéanamh. Mar shampla, luath nó mall beidh mearbhall agus ascnaimh briste mar thoradh ar chur chuige neamhstruchtúrach maidir le bainistiú athruithe. Mura ndéanann tú athruithe comhspleácha ar struchtúr an bhunachair shonraí agus ar loighic na seirbhísí a rolladh amach ag an am céanna, tá dóchúlacht ard ann go dtiocfaidh tástálacha dearga nó timpeallacht briste as seo. Ina theannta sin, tá alt sna moltaí maidir le Liquibase a úsáid ar an láithreán gréasáin oifigiúil maidir le forbairt agus fíorú scripteanna rolladh siar mar aon leis na príomhscripteanna aistrithe. Bhuel, san alt https://habr.com/ru/post/178665/ tá samplaí de chód a bhaineann le himscrúduithe agus an mheicníocht um rolladh siar.

2. Má thosaigh tú ag úsáid uirlisí imirce, ná ceadaigh ceartúcháin láimhe i struchtúr an bhunachair sonraí

Mar a théann an rá: "Nuair a Persil, i gcónaí Persil." Má tá bunús d’iarratais tosaithe á bhainistiú ag uirlisí Liquibase, cruthaíonn aon athruithe láimhe ar an toirt staid neamh-chomhsheasmhach, agus éiríonn an leibhéal muiníne as na tacair athruithe náid. Rioscaí féideartha - roinnt uaireanta an chloig a chaitear ar an mbunachar sonraí a athchóiriú, sa chás is measa - freastalaí marbh. Má tá Ailtire DBA “seanscoile” ag d’fhoireann, mínigh dó go foighneach agus go tuisceanach cé chomh dona is a bheidh rudaí má dhéanann sé eagarthóireacht ar an mbunachar sonraí ina bhealach féin ón bhForbróir coinníollach SQL.

3. Má tá an changeset brú cheana féin go dtí an stór, a sheachaint eagarthóireacht

Má tharraing agus má chuir forbróir eile tacar athruithe i bhfeidhm a chuirfear in eagar níos déanaí, is cinnte go gcuimhneoidh sé ort le focal cineálta nuair a fhaigheann sé earráid nuair a thosaíonn an t-iarratas. Más rud é go n-imíonn an fhorbairt amach ar bhealach éigin nuair a chuirtear an t-athruithe in eagar, beidh ort dul síos fána sleamhain na socruithe teo. Luíonn croílár na faidhbe ar bhailíochtú na n-athruithe le hash sum - an mheicníocht is mó de Liquibase. Agus an cód changeset á chur in eagar, athraíonn an tsuim hash. Ní féidir athruithe a chur in eagar ach amháin nuair is féidir an bunachar sonraí iomlán a imscaradh ón tús gan sonraí a chailliúint. Sa chás seo, is féidir, ar a mhalairt, an saol a dhéanamh níos éasca trí athmhactóireacht a dhéanamh ar chód SQL nó XML, agus ascnaimh a dhéanamh níos inléite. Sampla a bheadh ​​ann ná cás ina ndéanfaí, ag tús an fheidhmchláir, scéimre an bhunachair shonraí foinse a chomhordú laistigh den fhoireann.

4. Bíodh cúltacaí bunachar sonraí fíoraithe agat más féidir

Anseo, sílim, tá gach rud soiléir. Más rud é go tobann nár éirigh leis an imirce, is féidir gach rud a thabhairt ar ais ar ais. Tá uirlis ais-rollta ag Liquibase, ach is é an forbróir féin a scríobhann na scripteanna ais-rollta freisin, agus is féidir go mbeadh fadhbanna acu leis an dóchúlacht chéanna agus a bhíonn sna príomhscríbhinní changeset. Ciallaíonn sé seo go bhfuil sé úsáideach in aon chás é a imirt go sábháilte le cúltacaí.

5. Úsáid cúltacaí bunachar sonraí fíoraithe á bhforbairt más féidir

Mura dtagann sé seo salach ar chonarthaí agus ar phríobháideachas, níl aon sonraí pearsanta sa bhunachar sonraí, agus ní mheáann sé cosúil le dhá ghrian - sula gcuirtear i bhfeidhm é ar fhreastalaithe imirce beo, is féidir leat a sheiceáil conas a oibríonn sé ar mheaisín an fhorbróra agus beagnach 100% a ríomh. fadhbanna féideartha le linn imirce.

6. Déan comhrá le forbróirí eile ar an bhfoireann

I bpróiseas forbartha dea-eagraithe, tá a fhios ag gach duine ar an bhfoireann cé atá ag déanamh cad é. I ndáiríre, is minic nach mbíonn sé seo amhlaidh, mar sin, má tá athruithe á n-ullmhú agat ar struchtúr an bhunachair shonraí mar chuid de do thasc, moltar duit an fhoireann ar fad a chur ar an eolas faoi seo. Má tá duine ag déanamh athruithe ag an am céanna, ba chóir duit a eagrú go cúramach. Is fiú cumarsáid a dhéanamh le comhghleacaithe fiú ag deireadh na hoibre, ní hamháin ag an tús. Is féidir go leor fadhbanna a d’fhéadfadh a bheith ann maidir le tacaí athruithe a réiteach ag céim athbhreithnithe an chóid.

7. Smaoinigh cad atá tú a dhéanamh!

Comhairle a bheadh ​​féin-soiléir, de réir dealraimh, infheidhme i gcás ar bith. D’fhéadfaí go leor fadhbanna a sheachaint, áfach, dá mbeadh anailís déanta arís ag an bhforbróir ar a raibh ar siúl aige agus cad a d’fhéadfadh cur isteach air. Teastaíonn aird bhreise agus cruinneas i gcónaí chun oibriú le himirce.

Gaistí

Breathnaímid anois ar na gaistí tipiciúla ar féidir leat titim isteach mura leanann tú an chomhairle thuas, agus cad ba cheart, i ndáiríre, a dhéanamh?

Staid 1. Tá dhá fhorbróir ag iarraidh tacair athruithe nua a chur leis ag an am céanna

Conas gan tú féin a shoot sa chos ag baint úsáide as Liquibase
Tá Vasya agus Petya ag iarraidh leagan 4 changeet a chruthú gan a bheith eolach ar a chéile. Rinne siad athruithe ar struchtúr an bhunachair sonraí, agus chuir siad iarratas ar tharraingt isteach, le comhaid changeset éagsúla. Tá an mheicníocht seo a leanas molta thíos:

Conas a réiteach

  1. Ar bhealach éigin, ní mór do chomhghleacaithe aontú ar an ord inar cheart a gcuid athruithe a dhéanamh, déarfaimid gur cheart Petin a chur i bhfeidhm ar dtús.
  2. Ba chóir do dhuine amháin an ceann eile a dhoirteadh isteach agus sraith athruithe Vasya a mharcáil le leagan 5. Is féidir é seo a dhéanamh trí Cherry Pick nó trí chumasc néata.
  3. Tar éis na n-athruithe, bí cinnte bailíocht na ngníomhartha a rinneadh a sheiceáil.
    Go deimhin, ligfidh meicníochtaí Liquibase duit dhá leagan 4 changeets a bheith agat sa stór, ionas gur féidir leat gach rud a fhágáil mar atá sé. Is é sin, ní bheidh ach dhá athbhreithniú agat ar leagan 4 le hainmneacha éagsúla. Leis an gcur chuige seo, éiríonn sé an-deacair leaganacha bunachar sonraí a nascleanúint níos déanaí.

Ina theannta sin, coinníonn Liquibase, cosúil le tithe na hobbits, go leor rúin. Is é ceann acu an eochair validCheckSum, atá le feiceáil ó leagan 1.7 agus a ligeann duit luach hash bailí a shonrú le haghaidh tacar athruithe ar leith, is cuma cad atá stóráilte sa bhunachar sonraí. Doiciméadúchán https://www.liquibase.org/documentation/changeset.html deir an méid seo a leanas:

Cuir seiceam leis a mheastar a bheith bailí don changeSet seo, is cuma cad atá stóráilte sa bhunachar sonraí. Úsáidtear é go príomha nuair is gá duit changeSet a athrú agus níl tú ag iarraidh earráidí a chaitheamh ar bhunachair shonraí ar a bhfuil sé ag rith cheana (ní nós imeachta molta é)

Sea, ní mholtar é seo. Ach uaireanta máistreacht magician éadrom láidir freisin teicnící dorcha.

Cás 2: Aistriú sonraí-tiomáinte

Conas gan tú féin a shoot sa chos ag baint úsáide as Liquibase

Ligean le rá nach féidir leat cúltacaí bunachar sonraí a úsáid ó fhreastalaithe beo. Chruthaigh Petya athrú, rinne sé é a thástáil go háitiúil, agus le muinín iomlán go raibh an ceart aige, rinne sé iarratas ar tharraingt chuig an bhforbróir. Ar eagla na heagla, shoiléirigh ceannaire an tionscadail cibé ar sheiceáil Petya é, agus ansin ar dhoirteadh isteach é. Ach tá an t-imscaradh ar an bhfreastalaí forbartha tar éis titim.

Go deimhin, tá sé seo indéanta, agus níl aon duine díolmhaithe uaidh seo. Tarlaíonn sé seo má tá modhnuithe ar an struchtúr tábla ceangailte ar bhealach éigin le sonraí sonracha ón mbunachar sonraí. Ar ndóigh, mura bhfuil ach sonraí tástála líonta i mbunachar sonraí Petya, ní fhéadfaidh sé gach fadhb a chlúdach. Mar shampla, agus tábla á scriosadh, tarlaíonn sé go bhfuil taifid i dtáblaí eile de réir Eochrach Coigríche a bhaineann le taifid sa cheann atá á scriosadh. Nó nuair a bhíonn an cineál colún á athrú, tarlaíonn sé nach féidir 100% de na sonraí a thiontú go dtí an cineál nua.

Conas a réiteach

  • Scríobh scripteanna speisialta a chuirfear i bhfeidhm uair amháin in éineacht leis an aistriú agus tabhair na sonraí isteach san fhoirm cheart. Is bealach ginearálta é seo chun an fhadhb a bhaineann le sonraí a aistriú chuig struchtúir nua a réiteach tar éis imirce a chur i bhfeidhm, ach is féidir rud éigin den chineál céanna a chur i bhfeidhm roimhe seo, i gcásanna speisialta. Níl an cosán seo, ar ndóigh, ar fáil i gcónaí, mar is féidir le sonraí eagarthóireachta ar fhreastalaithe beo a bheith contúirteach agus fiú marfach.
  • Bealach fánach eile is ea tacar athruithe atá ann cheana a chur in eagar. Is é an deacracht atá ann ná go gcaithfear na bunachair shonraí go léir a bhfuil sé curtha i bhfeidhm ina bhfoirm reatha a athchóiriú. Is féidir go mbeidh iallach ar an bhfoireann inneall iomlán an bunachar sonraí a rolladh suas go háitiúil ón tús.
  • Agus is é an bealach is uilíoch ná an fhadhb sonraí a aistriú chuig timpeallacht an fhorbróra, an cás céanna a athchruthú agus sraith athruithe nua a chur leis, go ceann briste, a sheachbhóthar an fhadhb.
    Conas gan tú féin a shoot sa chos ag baint úsáide as Liquibase

Go ginearálta, dá mhéad atá an bunachar sonraí comhchosúil i gcomhdhéanamh leis an mbunachar sonraí freastalaí táirgthe, is lú an seans go n-imeoidh fadhbanna imirce i bhfad. Agus, ar ndóigh, sula gcuireann tú an t-athruithe chuig an stór, ba cheart duit smaoineamh arís agus arís eile an mbrisfidh sé rud éigin.

Staid 3. Tosaíonn Liquibase a úsáid tar éis dó dul i dtáirgeadh

Cuir i gcás gur iarr an ceannaire foirne ar Petya Liquibase a áireamh sa tionscadal, ach tá an tionscadal á tháirgeadh cheana féin agus tá struchtúr bunachar sonraí ann cheana féin.

Dá réir sin, is é an fhadhb atá ann ná ar aon fhreastalaithe nua nó meaisíní forbróra, ní mór na sonraí tábla a athchruthú ón tús, agus ní mór don timpeallacht atá ann cheana féin fanacht i riocht comhsheasmhach, a bheith réidh le glacadh le hathruithe nua.

Conas a réiteach

Tá roinnt bealaí ann freisin:

  • Is é an chéad cheann agus an ceann is soiléire ná script ar leith a bheith agat a chaithfear a chur i bhfeidhm de láimh agus timpeallacht nua á thosú.
  • Is é an dara ceann, nach bhfuil chomh soiléir, ná ascnamh Liquibase a bheith i gComhthéacs Liquibase eile agus é a chur i bhfeidhm. Is féidir leat tuilleadh a léamh faoi Chomhthéacs Liquibase anseo: https://www.liquibase.org/documentation/contexts.html. Go ginearálta, is meicníocht suimiúil é seo is féidir a chur i bhfeidhm go rathúil, mar shampla, le haghaidh tástála.
  • Tá roinnt céimeanna sa tríú cosán. Ar dtús, ní mór ascnamh a chruthú do na táblaí atá ann cheana. Ansin ní mór é a chur i bhfeidhm ar roinnt timpeallacht agus dá bhrí sin beidh a suim hash a fháil. Is é an chéad chéim eile táblaí Liquibase folamh a thúsú ar ár bhfreastalaí neamhfholamh, agus is féidir leat taifead de láimh ar athruithe “amhail is dá gcuirfí i bhfeidhm” leis na hathruithe atá sa bhunachar sonraí cheana féin a chur isteach sa tábla leis an stair a bhaineann le sraitheanna athruithe a chur i bhfeidhm. Mar sin, ar fhreastalaí atá ann cheana féin, tosóidh an stair ó leagan 2, agus iompróidh gach timpeallacht nua mar an gcéanna.
    Conas gan tú féin a shoot sa chos ag baint úsáide as Liquibase

Cás 4: Éiríonn imirce ollmhór agus ní féidir leo coinneáil suas

Ag tús na forbartha seirbhíse, mar riail, úsáidtear Liquibase mar spleáchas seachtrach, agus déantar gach imirce a phróiseáil nuair a thosaíonn an t-iarratas. Mar sin féin, le himeacht ama, féadfaidh tú teacht ar na cásanna seo a leanas:

  • Éiríonn imirce ollmhór agus tógann sé go leor ama iad a chur i gcrích.
  • Is gá dul ar imirce i dtimpeallachtaí dáilte, mar shampla, ar roinnt cásanna de fhreastalaithe bunachar sonraí ag an am céanna.
    Sa chás seo, beidh teorainn ama i gceist nuair a thosaíonn an t-iarratas má dhéantar ascnaimh rófhada. Chomh maith leis sin, d’fhéadfadh sé go mbeadh freastalaithe éagsúla i riocht sioncronaithe de thoradh ascnaimh a chur i bhfeidhm ar bhonn an iarratais.

Conas a réiteach

I gcásanna den sórt sin, tá do thionscadal mór cheana féin, b'fhéidir fiú duine fásta, agus tosaíonn Liquibase ag feidhmiú mar uirlis sheachtrach ar leith. Is é an bhfíric go bhfuil Liquibase, mar leabharlann, le chéile i gcomhad jar, agus is féidir oibriú mar spleáchas laistigh den tionscadal, chomh maith le standalone.

As líne, is féidir leat feidhmiú na n-imscrúduithe a fhágáil chuig do thimpeallacht CI/CD nó go dtí guaillí láidre do riarthóirí/imscartóirí. Chun seo a dhéanamh, ní mór duit an líne ordaithe Liquibase https://www.liquibase.org/documentation/command_line.html. Ar an modh seo, beidh sé indéanta an t-iarratas a sheoladh tar éis na haistrithe riachtanacha go léir a bheith críochnaithe.

Aschur

Go deimhin, tá i bhfad níos mó contúirtí ann agus tú ag obair le haistrithe bunachar sonraí, agus éilíonn go leor acu cur chuige cruthaitheach. Tá sé tábhachtach a thuiscint má úsáideann tú an uirlis i gceart, ansin is féidir an chuid is mó de na gaistí seo a sheachaint. Go sonrach, bhí orm aghaidh a thabhairt ar na fadhbanna go léir atá liostaithe i bhfoirmeacha éagsúla, agus bhí cuid acu mar thoradh ar mo jambs. Go bunúsach, tarlaíonn sé seo, ar ndóigh, mar gheall ar neamhaird, ach uaireanta - mar gheall ar an neamhábaltacht coiriúil an uirlis a úsáid.

Foinse: will.com

Add a comment