Ahoana no hisorohana ny fitifirana ny tenanao amin'ny tongotra mampiasa Liquibase

Mbola tsy nisy nitranga teo aloha, ary izao indray!

Tamin'ny tetikasanay manaraka, nanapa-kevitra ny hampiasa Liquibase hatrany am-boalohany izahay mba hisorohana ny olana amin'ny ho avy. Raha ny fantatra dia tsy ny tanora rehetra ao amin’ny ekipa no mahay mampiasa azy io araka ny tokony ho izy. Nanao atrikasa anatiny aho, izay nanapa-kevitra ny havadika ho lahatsoratra.

Ny lahatsoratra dia ahitana toro-hevitra mahasoa sy famaritana ireo fandrika telo miharihary indrindra izay mety hidiranao rehefa miasa amin'ny fitaovana fifindra-monina angona fifandraisana, indrindra ny Liquibase. Natao ho an'ny mpamorona Java amin'ny ambaratonga Junior sy Afovoany; ho an'ny mpamorona efa za-draharaha dia mety hahaliana ny famolavolana sy ny famerenana izay efa fantatra.

Ahoana no hisorohana ny fitifirana ny tenanao amin'ny tongotra mampiasa Liquibase

Liquibase sy Flyway no teknolojia mifaninana indrindra amin'ny famahana ny olan'ny fanaraha-maso ny dikan-teny amin'ny rafi-pifandraisana ao amin'ny tontolo Java. Ny voalohany dia maimaim-poana tanteraka, amin'ny fampiharana dia matetika no voafidy ho ampiasaina, ka izany no antony nifidianana an'i Liquibase ho maherifon'ny famoahana. Na izany aza, ny sasany amin'ireo fanao voalaza dia mety ho an'ny rehetra, miankina amin'ny rafitra fampiharana anao.

Ny fifindra-monina amin'ny rafi-pifandraisana dia fomba an-tery hiatrehana ny fahalemen'ny fitehirizana angon-drakitra mifandraika. Tamin'ny vanim-potoanan'ny lamaody OOP, ny fomba fiasa miaraka amin'ny angon-drakitra dia midika fa hamaritana ny tetika indray mandeha izahay ary tsy hikasika azy indray. Saingy ny zava-misy dia miova foana ny zava-drehetra, ary ilaina matetika ny fanovana ny firafitry ny latabatra. Mazava ho azy, ny dingana mihitsy dia mety ho maharary sy tsy mahafinaritra.

Tsy hiditra lalindalina kokoa amin'ny famaritana ny teknolojia sy ny torolalana amin'ny fampidirana tranomboky amin'ny tetikasanao aho; lahatsoratra vitsivitsy no nosoratana momba ity lohahevitra ity:

Ankoatra izany, efa nisy lahatsoratra tena tsara momba ny lohahevitra momba ny torohevitra mahasoa:

Tips

Te-hizara ny torohevitro sy ny fanehoan-keviko aho, izay teraka tamin'ny hatsembohana, ny ra ary ny fanaintainan'ny famahana olana amin'ny fifindra-monina.

1. Alohan'ny hanombohan'ny asa dia tokony ho fantatrao tsara ny fizarana fanao tsara indrindra momba ny tranonkala Liquibase

misy zavatra tsotra nefa tena manan-danja no voalaza, raha tsy misy ny fampiasana ny trano famakiam-boky dia mety hanasarotra ny fiainanao. Ohatra, ny fomba fiasa tsy voarafitra amin'ny fitantanana ireo fanovana dia hitarika fisafotofotoana sy fifindra-monina tapaka. Raha toa ka tsy manodina ny fanovana iankinan'ny tsirairay amin'ny rafitry ny angon-drakitra sy ny lojikan'ny serivisy amin'ny fotoana iray, dia misy ny mety hitranga fa izany dia hitarika amin'ny fitsapana mena na tontolo iainana tapaka. Ho fanampin'izany, ny tolo-kevitra amin'ny fampiasana Liquibase amin'ny tranokala ofisialy dia misy fehezanteny momba ny fampivoarana sy ny fitiliana ny script rollback miaraka amin'ireo script fifindra-monina lehibe. Eny, ao amin'ny lahatsoratra https://habr.com/ru/post/178665/ Misy ohatra kaody momba ny fifindra-monina sy ny mekanika famerenana.

2. Raha manomboka mampiasa fitaovana fifindra-monina ianao dia aza avela ny fanitsiana tanana ao amin'ny rafitry ny angona

Araka ny fitenenana hoe: "Indray mandeha Persil, Persil foana." Raha manomboka tantanin'ny Liquibase ny fototry ny fampiharanao, ny fanovana rehetra amin'ny tanana dia mitarika avy hatrany any amin'ny fanjakana tsy mifanaraka, ary ny haavon'ny fahatokisana amin'ny fanovana dia lasa aotra. Ny loza mety hitranga dia misy ora maromaro lany amin'ny famerenana ny angon-drakitra; amin'ny tranga ratsy indrindra, mpizara maty. Raha manana DBA Architect "sekoly tranainy" ianao ao amin'ny ekipanao, hazavao aminy amim-paharetana sy amim-paharetana ny mety ho zava-dratsy raha toa ka manitsy fotsiny ny angon-drakitra araka ny fahatakarany azy avy amin'ny Developer SQL misy fepetra izy.

3. Raha efa nampidirina tao amin'ny tahiry ny changeset, aza atao ny manova

Raha misy developer hafa nanao fisintonana ary nampihatra changeset, izay hovaina any aoriana, dia ho tsaroany tokoa ianao amin'ny teny tsara rehefa misy fahadisoana rehefa manomboka ny fampiharana. Raha toa ka miditra amin'ny fivoarana ny fanitsiana ny changeset dia tsy maintsy manaraka ny tehezan'ny hotfix malama ianao. Ny fototry ny olana dia miankina amin'ny fanamarinana ny fanovana amin'ny alàlan'ny hash sum - ny mekanika fototra an'ny Liquibase. Rehefa manitsy ny code changeset dia miova ny habetsahan'ny hash. Ny fanovana fanovana dia tsy azo atao raha tsy azo atao ny mametraka ny angon-drakitra manontolo manomboka amin'ny voalohany nefa tsy very data. Amin'ity tranga ity, ny famerenana indray ny kaody SQL na XML dia mety, mifanohitra amin'izany, manamora ny fiainana ary mahatonga ny fifindra-monina ho mora vakina. Ohatra iray ny toe-javatra iray izay, tany am-piandohan'ny fampiharana, ny tetika momba ny angon-drakitra loharano dia nifanarahana tao anatin'ny ekipa.

4. Manamarina ny backup backup raha azo atao

Eto, heveriko fa mazava ny zava-drehetra. Raha tsy nahomby tampoka ny fifindra-monina, dia azo averina ny zava-drehetra. Ny Liquibase dia manana fitaovana hamerenana ny fanovana, fa ny script rollback ihany koa dia nosoratan'ny mpamorona ny tenany, ary mety hanana olana mitovy amin'ny an'ny script amin'ny fanovana lehibe izy ireo. Midika izany fa ilaina ny milalao azy io amin'ny backups na ahoana na ahoana.

5. Mampiasà backup backup voaporofo amin'ny fampandrosoana, raha azo atao

Raha tsy mifanohitra amin'ny fifanarahana sy ny fiainana manokana izany, dia tsy misy angon-drakitra manokana ao amin'ny angon-drakitra, ary tsy milanja masoandro mihoatra ny roa izany - alohan'ny hampiasana azy amin'ny mpizara fifindra-monina mivantana, azonao atao ny manamarina ny fomba fiasa amin'ny masinin'ny mpamorona ary manao kajy. efa ho 100% ny olana mety hitranga mandritra ny fifindra-monina.

6. Mifandraisa amin'ireo mpamorona hafa ao amin'ny ekipa

Ao anatin'ny dingana fampandrosoana voalamina tsara, fantatry ny rehetra ao amin'ny ekipa hoe iza no manao inona. Raha ny zava-misy dia matetika tsy izany no izy, noho izany, raha manomana fanovana amin'ny firafitry ny angon-drakitra ho ampahany amin'ny asanao ianao, dia tsara kokoa ny mampahafantatra ny ekipa manontolo momba izany. Raha misy olona manao fiovana mifanitsy, dia tokony handamina tsara ianao. Mendrika ny mifandray amin'ny mpiara-miasa rehefa vita ny asa, fa tsy amin'ny fanombohana fotsiny. Betsaka ny olana mety hitranga amin'ny fanovana fanovana azo voavaha amin'ny dingana famerenana ny code.

7. Eritrereto izay ataonao!

Toa toro-hevitra miharihary izay mihatra amin'ny toe-javatra rehetra. Na izany aza, olana maro no azo nosorohana raha nandinika indray ny zavatra nataony sy ny mety ho fiantraikan'izany ny developer. Mitaky fitandremana sy fahitsiana fanampiny foana ny fiasana amin'ny fifindra-monina.

fandrika

Andeha hojerentsika izao ireo fandrika mahazatra mety hidiranao raha tsy manaraka ny torohevitra etsy ambony ianao, ary inona marina no tokony hataonao?

Toe-javatra 1: Mpamorona roa no manandrana manampy fanovana vaovao amin'ny fotoana iray ihany

Ahoana no hisorohana ny fitifirana ny tenanao amin'ny tongotra mampiasa Liquibase
Vasya sy Petya dia te-hamorona fanovana version 4, nefa tsy mifankahalala. Nanao fanovana tamin'ny firafitry ny angon-drakitra izy ireo ary namoaka fangatahana misintona miaraka amin'ireo rakitra changeset samihafa. Ity mekanisma ity dia atolotra:

Ahoana no hamahana

  1. Na izany na tsy izany, ny mpiara-miasa dia tsy maintsy manaiky ny filaharan'ny fanovana tokony halehany, ohatra, ny Petin no tokony hampiharina aloha.
  2. Ny olona iray dia tokony hampiditra ny faharoa ho an'ny tenany ary hanamarika ny fiovan'i Vasya amin'ny dikan-teny 5. Azo atao amin'ny Cherry Pick na fampifangaroana tsara izany.
  3. Aorian'ny fanovana dia tokony hojerenao tsara ny fahamarinan'ny hetsika natao.
    Raha ny marina, ny mekanisma Liquibase dia ahafahanao manana fanovana 4 dikan-teny roa ao amin'ny tahiry, mba hahafahanao miala amin'ny zava-drehetra. Izany hoe, hanana fanovana roa fotsiny ianao amin'ny version 4 miaraka amin'ny anarana samihafa. Miaraka amin'io fomba fiasa io, dia lasa sarotra be ny mivezivezy amin'ny dikan-drakitra.

Ankoatra izany, Liquibase, toy ny tranon'ny hobbits, dia mitazona tsiambaratelo maro. Ny iray amin'izy ireo dia ny lakile validCheckSum, izay niseho tamin'ny version 1.7 ary mamela anao hamaritra ny sandan'ny hash manan-kery ho an'ny fanovana manokana, na inona na inona voatahiry ao amin'ny tahiry. tahirin-kevitra https://www.liquibase.org/documentation/changeset.html hoy ireto manaraka ireto:

Manampia checksum izay heverina ho manan-kery amin'ity changeSet ity, na inona na inona voatahiry ao amin'ny tahiry. Ampiasaina voalohany indrindra rehefa mila manova changeSet ianao ary tsy mila lesoka atsipy ao amin'ny angon-drakitra efa niasany (fa tsy fomba fanao)

Eny, eny, ity dingana ity dia tsy soso-kevitra. Saingy indraindray ny mpanao ody matanjaka matanjaka dia mahafehy teknika maizina

Toe-javatra 2: Fifindra-monina izay miankina amin'ny angona

Ahoana no hisorohana ny fitifirana ny tenanao amin'ny tongotra mampiasa Liquibase

Aoka hatao hoe tsy manana fahafahana mampiasa backups amin'ny angon-drakitra avy amin'ny mpizara mivantana ianao. Namorona changeset i Petya, nanandrana izany teo an-toerana ary, tamim-pahatokiana tanteraka fa marina izy, dia nanao fangatahana fisarihana tamin'ny mpamorona. Raha sanatria, nanazava ny mpitarika ny tetikasa raha nanamarina izany i Petya, ary nampiany avy eo. Saingy nihena ny fametrahana ny lohamilina fampandrosoana.

Raha ny marina dia azo atao izany, ary tsy misy afa-tsy amin'izany. Mitranga izany raha mifamatotra amin'ny angona manokana avy amin'ny angon-drakitra ny fanovana amin'ny firafitry ny latabatra. Mazava ho azy fa raha feno angon-drakitra fitsapana fotsiny ny angon-drakitra an'i Petya, dia mety tsy mandrakotra ny olana rehetra izany. Ohatra, rehefa mamafa latabatra dia hita fa misy rakitra amin'ny tabilao hafa avy amin'ny Foreign Key izay mifandray amin'ny rakitra ao amin'ilay voafafa. Na rehefa manova karazana tsanganana dia hita fa tsy 100% ny angona azo ovaina ho karazana vaovao.

Ahoana no hamahana

  • Manorata script manokana izay hampiasaina indray mandeha miaraka amin'ny fifindra-monina ary ento amin'ny endrika mety ny angona. Ity dia fomba ankapobeny hamahana ny olan'ny famindrana angon-drakitra amin'ny rafitra vaovao aorian'ny fampiharana ny fifindra-monina, fa ny zavatra mitovy amin'izany dia azo ampiharina aloha, amin'ny tranga manokana. Mazava ho azy fa tsy misy foana io lalana io, satria mety hampidi-doza sy hanimba mihitsy aza ny fanovana angon-drakitra amin'ny mpizara mivantana.
  • Ny fomba sarotra iray hafa dia ny manova fanovana efa misy. Ny fahasarotana dia tsy maintsy averina amin'ny laoniny ny angon-drakitra rehetra izay efa nampiharina tamin'ny endriny efa misy. Azo atao angamba fa ny ekipan'ny backend manontolo dia ho voatery hamoaka ny angona avy any an-toerana hatrany am-boalohany.
  • Ary ny fomba mahazatra indrindra dia ny mamindra ny olana miaraka amin'ny angon-drakitra amin'ny tontolon'ny mpamorona, mamerina ny toe-javatra mitovy amin'izany ary manampy fanovana vaovao, amin'ny tapaka, izay handositra ny olana.
    Ahoana no hisorohana ny fitifirana ny tenanao amin'ny tongotra mampiasa Liquibase

Amin'ny ankapobeny, arakaraky ny hitovizan'ny angon-drakitra amin'ny angon-drakitra serivera famokarana, dia kely kokoa ny mety hisian'ny olana amin'ny fifindra-monina. Ary, mazava ho azy, alohan'ny handefasanao fanovana ao amin'ny tahiry dia tokony hieritreritra imbetsaka ianao raha handrava na inona na inona.

Toe-javatra 3. Manomboka ampiasaina ny Liquibase rehefa avy namokatra

Eritrereto hoe nangataka an'i Petya hampiditra Liquibase ao amin'ny tetikasa ny mpitarika ny ekipa, saingy efa eo am-pamokarana ny tetikasa ary misy rafitra angon-drakitra efa misy.

Noho izany, ny olana dia ny hoe amin'ny mpizara vaovao na milina mpamorona, ireo latabatra ireo dia tsy maintsy amboarina hatrany am-boalohany, ary ny tontolo iainana efa misy dia tsy maintsy mijanona amin'ny toe-javatra tsy miova, vonona ny hanaiky fanovana vaovao.

Ahoana no hamahana

Misy fomba maromaro ihany koa:

  • Ny voalohany sy mazava indrindra dia ny fananana script mitokana izay tsy maintsy ampiharina amin'ny tanana rehefa manomboka tontolo vaovao.
  • Ny faharoa dia tsy dia mazava loatra, manana fifindra-monina Liquibase izay ao amin'ny Liquibase Context hafa, ary ampiharo izany. Azonao atao ny mamaky bebe kokoa momba ny Liquibase Context eto: https://www.liquibase.org/documentation/contexts.html. Amin'ny ankapobeny, ity dia mekanika mahaliana izay azo ampiasaina amim-pahombiazana, ohatra, amin'ny fitsapana.
  • Ny lalana fahatelo dia misy dingana maromaro. Voalohany, tsy maintsy mamorona fifindra-monina ho an'ny latabatra efa misy. Avy eo dia tsy maintsy ampiharina amin'ny tontolo iainana sasany izany ary amin'izany dia ho azo ny fitambaran'ny hash. Ny dingana manaraka dia ny fanombohana ny latabatra Liquibase tsy misy na inona na inona amin'ny mpizara tsy misy banga, ary ao amin'ny latabatra misy ny tantaran'ny fampiasana ny fanovana dia azonao atao ny mametraka firaketana an-tsoratra momba ny fanovana "toy ny hoe ampiharina" miaraka amin'ny fanovana efa misy ao amin'ny tahiry. . Noho izany, amin'ny mpizara efa misy, ny fanisana ny tantara dia manomboka amin'ny dikan-teny 2, ary ny tontolo vaovao rehetra dia hitondra tena mitovy.
    Ahoana no hisorohana ny fitifirana ny tenanao amin'ny tongotra mampiasa Liquibase

Toe-javatra 4. Lasa goavana ny fifindra-monina ary tsy manam-potoana hamitana azy

Amin'ny fiandohan'ny fivoaran'ny serivisy, amin'ny ankapobeny, Liquibase dia ampiasaina ho fiankinan-doha ivelany, ary ny fifindra-monina rehetra dia karakaraina rehefa manomboka ny fampiharana. Na izany aza, rehefa mandeha ny fotoana, dia mety ho tafintohina amin'ireto tranga manaraka ireto ianao:

  • Lasa goavana ny fifindra-monina ary elaela vao vita.
  • Ilaina ny fifindra-monina any amin'ny tontolo zaraina, ohatra, amin'ny mpizara database maromaro miaraka.
    Amin'ity tranga ity, ny fampiharana ny fifindra-monina ela loatra dia hiteraka fe-potoana hanombohan'ny fampiharana. Fanampin'izany, ny fampiharana ny fifindra-monina amin'ny ohatra tsirairay amin'ny fampiharana tsirairay dia mety hiteraka server samihafa tsy mifanaraka.

Ahoana no hamahana

Amin'ny tranga toy izany dia efa lehibe ny tetikasanao, mety ho olon-dehibe mihitsy aza, ary manomboka miasa toy ny fitaovana ivelany misaraka i Liquibase. Ny zava-misy dia ny Liquibase amin'ny maha-fitehirizam-boky dia natambatra ho rakitra siny, ary afaka miasa toy ny fiankinan-doha ao anatin'ny tetikasa iray na tsy miankina.

Amin'ny fomba tokana, azonao atao ny mamela ny fampiharana ny fifindra-monina mankany amin'ny tontolo CI/CD anao na amin'ny soroka matanjaka amin'ny mpitantana ny rafitrao sy ny manam-pahaizana manokana momba ny fametrahana. Mba hanaovana izany dia mila ny baiko Liquibase ianao https://www.liquibase.org/documentation/command_line.html. Amin'ity fomba ity dia azo atao ny manomboka ny fampiharana rehefa vita ny fifindra-monina ilaina rehetra.

famaranana

Raha ny marina, mety hisy fandrika maro kokoa rehefa miasa amin'ny fifindra-monina angona, ary maro amin'izy ireo no mitaky fomba famoronana. Zava-dehibe ny mahatakatra fa raha mampiasa tsara ny fitaovana ianao, dia azo sorohina ny ankamaroan'ireo fandrika ireo. Amin'ny ankapobeny dia tsy maintsy niatrika ireo olana voatanisa tamin'ny endrika samihafa aho, ary ny sasany tamin'izy ireo dia vokatry ny fahadisoako. Ny ankamaroany dia mitranga izany, mazava ho azy, noho ny tsy fitandremana, fa indraindray noho ny tsy fahafahan'ny mpanao heloka bevava mampiasa ny fitaovana.

Source: www.habr.com

Add a comment