Sida looga fogaado in naftaada cagta laga toogto adigoo isticmaalaya Liquibase

Weligaa hore uma dhicin, oo halkan mar kale ayaan tagnaa!

Mashruucayaga soo socda, waxaan go'aansanay inaan isticmaalno Liquibase bilowga hore si aan uga fogaano dhibaatooyinka mustaqbalka. Sida ay soo baxday, dhammaan xubnaha kooxda dhalinyarada ma yaqaanaan sida saxda ah ee loo isticmaalo. Waxaan qabtay aqoon-is-weydaarsi gudaha ah, kaas oo aan markaa go'aansaday inaan u beddelo maqaal.

Maqaalka waxaa ku jira tabo faa'iido leh iyo sharaxaad ka mid ah saddexda god ee ugu cadcad ee aad ku dhici karto markaad la shaqeyneyso qalabka socdaalka xogta ee xiriirka, gaar ahaan Liquibase. Loogu talagalay horumarinta Java ee heerarka Junior iyo Dhexe; horumariyayaal khibrad badan leh waxa laga yaabaa inay xiisaynayso qaabaynta iyo ku celcelinta waxa ay u badan tahay in hore loo yaqaan.

Sida looga fogaado in naftaada cagta laga toogto adigoo isticmaalaya Liquibase

Liquibase iyo Flyway waa tignoolajiyada ugu weyn ee ku tartamaya xallinta dhibaatooyinka kontoroolka nooca qaab-dhismeedka xiriirka ee adduunka Java. Midka ugu horreeya waa bilaash, ficil ahaan inta badan waxaa loo doortaa isticmaalka, taas oo ah sababta Liquibase loo doortay geesiga daabacaadda. Si kastaba ha ahaatee, qaar ka mid ah dhaqamada lagu sharraxay waxay noqon karaan kuwo caalami ah, iyadoo ku xiran qaabka codsigaaga.

Socdaalka qaab dhismeedka xiriirka waa hab lagu qasbay in wax looga qabto dabacsanaanta daciifka ah ee dukaamada xogta xiriirka. Xilligii moodada OOP, qaabka la shaqaynta xogta macluumaadka waxa ay ka dhigan tahay in aan qeexi doono qorshaha hal mar oo aynaan mar kale taaban. Laakiin xaqiiqadu had iyo jeer waa in arrimuhu isbeddelaan, iyo isbeddellada qaab dhismeedka miiska ayaa loo baahan yahay marar badan. Dabcan, habka laftiisa wuxuu noqon karaa mid xanuun badan oo aan fiicnayn.

Ma sii fogaan doono sharaxaada tignoolajiyada iyo tilmaamaha ku darida maktabadda mashruucaaga; maqaallo aad u yar ayaa laga qoray mawduucan:

Intaa waxaa dheer, waxaa horay u jiray maqaal aad u fiican oo ku saabsan mawduuca talooyinka waxtarka leh:

Golaha

Waxaan rabaa inaan la wadaago taladayda iyo faallooyinkayga, dhididka, dhiigga iyo xanuunka xallinta dhibaatooyinka tahriibka.

1. Kahor intaadan bilaabin shaqada, waa inaad barataa naftaada qaybta hab-dhaqanka ugu fiican goobta Liquibase

Halkaa Waxyaabo fudud laakiin aad muhiim u ah ayaa lagu sifeeyaa, la'aanteed isticmaalka maktabadda waxay adkeyn kartaa noloshaada. Tusaale ahaan, hab aan habaysan oo loo maareeyo isbedelada ayaa mar dhow ama danbe u horseedi doonta jahawareer iyo guuritaan jaban. Haddii aadan isku mar ku soo rogin isbedelada labada qof ku tiirsan ee qaab dhismeedka xogta iyo macquulka adeegga, waxaa jirta suurtogalnimo sare oo ay taasi u horseedi doonto baaritaanno cas ama jawi jaban. Intaa waxaa dheer, talooyinka isticmaalka Liquibase ee bogga rasmiga ah waxay ka kooban yihiin qodob ku saabsan horumarinta iyo tijaabinta qoraallada dib-u-celinta oo ay la socdaan qoraallada socdaalka ee ugu muhiimsan. Waa hagaag, maqaalka https://habr.com/ru/post/178665/ Waxaa jira tusaalooyin kood ah oo ku saabsan guuritaanka iyo habka dib-u-celinta.

2. Haddii aad bilowdo isticmaalka qalabka socdaalka, ha u oggolaan in sixitaan gacanta lagu sameeyo qaab dhismeedka kaydka xogta

Maahmaahdii ayaa tiri: "Mar Persil, had iyo jeer Persil." Haddii saldhigga codsigaaga uu bilaabo inuu maamulo Liquibase, isbeddel kasta oo buuggu wuxuu isla markiiba keenayaa xaalad aan is-waafaqayn, iyo heerka kalsoonida isbeddelada ayaa noqda eber. Khataraha suurtagalka ah waxaa ka mid ah dhowr saacadood oo lagu qaatay soo celinta xogta; xaaladda ugu xun, server dhintay. Haddii aad kooxdaada ku leedahay "dugsi duug ah" DBA Architect, si samir leh oo feker leh u sharax sida ay wax u xun yihiin haddii uu si fudud u tafatiro xogta xogta si waafaqsan fahamkiisa gaarka ah ee horumariyaha SQL.

3. Haddii beddelka hore loogu riixay kaydka, iska ilaali tafatirka

Haddii horumariye kale uu jiido oo codsado Changeet, kaas oo hadhow la tafatiri doono, hubaal wuxuu kugu xasuusan doonaa erey naxariis leh marka uu helo qalad markii uu bilaabayo arjiga. Haddii tafatirka Changeet-ka si uun u daadato horumarka, waa inaad raacdaa jiirada sibiqsan ee hotfixes. Nuxurka dhibaatadu waxay ku xiran tahay ansaxinta isbeddelada iyadoo la adeegsanayo hash-ka ugu weyn ee Liquibase. Markaad tafatirayso koodka Changeet, qadarka xashiishku wuu isbedelaa. Tafatirka isbedelada waxay suurtagal noqon kartaa kaliya marka ay suurtagal tahay in la geeyo xogta oo dhan meel eber ah iyada oo aan lumin xogta. Xaaladdan oo kale, dib u habeynta SQL ama XML code waxay, liddi ku tahay, ka dhigi kartaa nolosha fudud oo ka dhigi karta socdaalka mid la akhriyi karo. Tusaale ahaan waxay noqon kartaa xaalad, bilowga arjiga, qorshaha xogta xogta isha lagu heshiiyey gudaha kooxda.

4. Hayso kaydka kaydinta xogta haddii ay suurtogal tahay

Halkan, waxaan u maleynayaa, wax walba waa cad yihiin. Haddii si lama filaan ah tahriibku u guulaysan waayo, wax walba waa la soo celin karaa. Liquibase waxay leedahay qalab loogu talagalay isbeddelada dib-u-celinta, laakiin qoraallada dib-u-celinta waxaa sidoo kale qoray horumariyaha laftiisa, waxayna la kulmi karaan dhibaatooyin la mid ah suurtogalnimada qoraallada isbeddellada ugu weyn. Tani waxay ka dhigan tahay inay faa'iido u leedahay in lagu ciyaaro si badbaado leh oo leh kaydin xaalad kasta.

5. Isticmaal kaydka kaydinta xogta ee la xaqiijiyay ee horumarinta, haddii ay suurtagal tahay

Haddii tani aysan ka hor imanayn qandaraasyada iyo qarsoodiga, ma jirto xog shakhsi ah oo ku jirta xogta, oo ma miisaankeedu sida ugu badan ee laba qorrax - ka hor inta aanad isticmaalin server-yada socdaalka, waxaad hubin kartaa sida ay ugu shaqeyn doonto mashiinka horumarinta oo aad xisaabiso ku dhawaad ​​100% dhibaatooyinka iman kara xiliga socdaalka.

6. La xidhiidh horumariyeyaasha kale ee kooxda

Hannaan horumarineed oo si wanaagsan loo agaasimay, qof kasta oo kooxda ka mid ah wuu garanayaa cidda waxa samaynaysa. Xaqiiqda, tani inta badan ma dhacdo, sidaas darteed, haddii aad u diyaarinayso isbeddel ku saabsan qaab dhismeedka kaydka xogta oo qayb ka ah hawshaada, waxaa lagugula talinayaa inaad sidoo kale ogeysiiso kooxda oo dhan arrintan. Haddii uu qof samaynayo isbeddello is barbar socda, waa in aad si taxadar leh u habayso. Way mudan tahay in lala xiriiro asxaabta ka dib marka shaqada la dhammeeyo, ma aha oo kaliya bilowga. Dhibaatooyin badan oo suurtagal ah oo ku saabsan isbeddelada ayaa lagu xallin karaa heerka dib u eegista code.

7. Ka fikir waxaad samaynayso!

Waxay u ekaan kartaa talo iska cad oo ku habboon xaalad kasta. Si kastaba ha ahaatee, dhibaatooyin badan ayaa laga fogaan lahaa haddii horumariyuhu uu mar kale falanqeeyay waxa uu samaynayo iyo waxa ay saameyn karto. La shaqaynta socdaalka had iyo jeer waxay u baahan tahay feejignaan iyo saxnaan dheeraad ah.

Dabinnada

Aynu hadda eegno dabinada caadiga ah ee aad ku dhici karto haddii aadan raacin talada kor ku xusan, iyo waxa, sax ah, waa inaad sameyso?

Xaalada 1: Laba horumariye ayaa isku dayaya inay ku daraan isbedelo cusub isku mar

Sida looga fogaado in naftaada cagta laga toogto adigoo isticmaalaya Liquibase
Vasya iyo Petya waxay rabaan inay abuuraan isbeddelka version 4, iyaga oo aan aqoonin midba midka kale. Waxay isbeddel ku sameeyeen qaab-dhismeedka kaydka xogta waxayna soo saareen codsi jiidis ah oo wata galal beddelo kala duwan. Habkan soo socda ee wax qabad ayaa la soo jeediyay:

Sida loo go'aansado

  1. Si kastaba ha noqotee, asxaabtu waa inay ku heshiiyaan sida ay isbeddelladoodu u socdaan, tusaale ahaan, Petin waa in marka hore la codsadaa.
  2. Qofku waa inuu ku daraa kan labaad oo uu ku calaamadiyo Vasya's Changeet nooca 5. Tan waxaa lagu samayn karaa Cherry Pick ama isku-dhafka nadiifka ah.
  3. Isbedelada ka dib, waa inaad hubisaa ansaxnimada ficilada la qaaday.
    Dhab ahaantii, hababka Liquibase ayaa kuu oggolaanaya inaad haysato laba nooc oo isbeddel ah oo 4 ah oo ku jira kaydka, si aad uga tagto wax walba sida ay yihiin. Taasi waa, waxaad si fudud u yeelan doontaa laba isbeddel oo ku yimaada nooca 4 oo leh magacyo kala duwan. Habkan, waxa hadhow noqonaysa mid aad u adag in la dhex maro noocyada xogta macluumaadka.

Intaa waxaa dheer, Liquibase, sida guriga hiwaayadaha, waxay ilaalisaa siro badan. Mid ka mid ah waa furaha saxda ahCheckSum, kaas oo ka soo muuqday nooca 1.7 oo kuu ogolaanaya inaad qeexdo qiimaha xashiishka saxda ah ee isbedel gaar ah, iyada oo aan loo eegin waxa lagu kaydiyo xogta. Dukumeenti https://www.liquibase.org/documentation/changeset.html wuxuu yidhi:

Ku dar jeegaga loo arko inuu sax yahay isbeddelkan, iyada oo aan loo eegin waxa ku kaydsan xogta. Waxa la isticmaalaa ugu horrayn marka aad u baahan tahay inaad beddesho ChangeSet oo aanad doonayn in khaladaad lagu tuuro kaydka xogta ee ay hore ugu shaqaynaysay (ma aha hab lagu taliyey)

Haa, haa, nidaamkan laguma talinayo. Laakiin mararka qaarkood saaxir iftiin xoog leh ayaa sidoo kale yaqaan farsamooyinka mugdiga ah

Xaaladda 2: Socdaalka ku xiran xogta

Sida looga fogaado in naftaada cagta laga toogto adigoo isticmaalaya Liquibase

Aynu ka soo qaadno inaadan lahayn awood aad ku isticmaashid kaydka kaydka xogta ee server-yada nool. Petya wuxuu abuuray isbedel, wuxuu tijaabiyay gudaha iyo, isagoo kalsooni buuxda ku qaba inuu saxan yahay, wuxuu codsaday soo jiidashada horumarinta. Kaliya haddii ay dhacdo, hoggaanka mashruuca ayaa caddeeyay in Petya uu hubiyay, ka dibna ku daray. Laakin hawlgelinta server-ka horumarinta ayaa dhacday.

Run ahaantii, tani waa suurtogal, mana jirto cid ka ilaalinaysa arrintan. Tani waxay dhacdaa haddii wax ka beddelka qaab dhismeedka miiska ay si uun ugu xidhan yihiin xog gaar ah oo laga helay kaydka xogta. Sida iska cad, haddii xogta Petya ay ka buuxsanto kaliya xogta tijaabada, markaa waxaa laga yaabaa inaysan daboolin dhammaan kiisaska dhibaatada. Tusaale ahaan, marka la tirtirayo miis, waxa soo baxaysa in ay jiraan diiwaanno ku jira jadwal kale oo uu qoray Furaha Shisheeye ee la xidhiidha diiwaannada ku jira midka la tirtiray. Ama marka la beddelo nooca tiirka, waxaa soo baxday in aan 100% xogta loo beddeli karin nooca cusub.

Sida loo go'aansado

  • Qor qoraallo gaar ah oo la isticmaali doono hal mar oo ay la socdaan socdaalka oo keen xogta qaabka habboon. Tani waa hab guud oo lagu xalliyo dhibaatada wareejinta xogta qaab dhismeed cusub ka dib marka la codsado guuritaanka, laakiin wax la mid ah ayaa la isticmaali karaa ka hor, xaalado gaar ah. Jidkaan, dabcan, mar walba lama heli karo, sababtoo ah tafatirka xogta server-yada nool waxay noqon kartaa khatar iyo xitaa burbur.
  • Habka kale ee adag ayaa ah in wax laga beddelo beddelka jira. Dhibaatadu waxay tahay in dhammaan xog-ururintii hore loogu dabaqay qaabkii hore ay tahay in dib loo soo celiyo. Waxaa suurtogal ah in dhammaan kooxda dhabarka ay ku qasbanaadaan inay si hoose xogta xogta uga soo saaraan meel eber ah.
  • Iyo habka ugu badan ee caalamiga ah waa in lagu wareejiyo dhibaatada xogta deegaanka horumariyaha, dib u soo celinta xaalad isku mid ah oo lagu daro isbeddel cusub, mid jaban, kaas oo ka gudbi doona dhibaatada.
    Sida looga fogaado in naftaada cagta laga toogto adigoo isticmaalaya Liquibase

Guud ahaan, inta badan ee kaydku la mid yahay ka kooban yahay xogta server-ka wax soo saarka, yaraanta fursada ah in dhibaatooyinka socdaalka fogaadaan. Iyo, dabcan, ka hor intaadan u dirin beddelka kaydka, waa inaad ka fikirtaa dhowr jeer inay wax jebin doonto iyo in kale.

Xaaladda 3. Liquibase waxay bilaabataa in la isticmaalo ka dib marka ay gasho wax soo saarka

Ka soo qaad in hogaamiyaha kooxda uu waydiistay Petya inuu ku daro Liquibase mashruuca, laakiin mashruucu wuxuu horeyba u soo saaray wax soo saarka oo uu jiro qaab dhismeed database ah.

Sidaa darteed, dhibaatadu waxay tahay in server kasta oo cusub ama mishiinnada horumariya, miisaskani waa in laga soo bilaabo eber, jawiga jirana waa inuu ku sii jiraa xaalad joogto ah, diyaar u ah inuu aqbalo isbeddelada cusub.

Sida loo go'aansado

Waxaa kaloo jira dhowr siyaabood:

  • Midda ugu horreysa uguna muuqata waa in la haysto qoraal gaar ah oo ay tahay in gacanta lagu dhaqo marka la bilaabayo deegaan cusub.
  • Midka labaad aad ayuu u yar yahay, hay socdaalka Liquibase kaas oo ku jira Macnaha guud ee Liquibase kale, oo isticmaal. Waxaad ka akhrisan kartaa wax badan oo ku saabsan Liquibase Context halkan: https://www.liquibase.org/documentation/contexts.html. Guud ahaan, tani waa farsamo xiiso leh oo si guul leh loo isticmaali karo, tusaale ahaan, tijaabinta.
  • Dariiqa saddexaad waxa uu ka kooban yahay dhawr tallaabo. Marka hore, socdaalka waa in loo abuuraa miisaska jira. Kadibna waa in lagu dabaqaa deegaanka qaarkood oo sidaas ayaa lagu heli doonaa xashiishkeeda. Talaabada xigta waa in aan ku bilowno miisaska Liquibase ee madhan serverkeena aan faaruqin, miiskana taariikhda isticmaalka isbedelada, waxaad gacanta ku dhejin kartaa diiwaanka ku saabsan "sida haddii lagu dabaqo" isbeddelada isbeddelada horeyba ugu jiray kaydka . Sidaa darteed, server-ka jira, tirinta taariikhda waxay ka bilaaban doontaa nooca 2, dhammaan bay'ada cusubna waxay u dhaqmi doonaan si isku mid ah.
    Sida looga fogaado in naftaada cagta laga toogto adigoo isticmaalaya Liquibase

Xaalada 4. Tahriibtu waxay noqotaa mid aad u wayn mana haystaan ​​wakhti ay ku dhamaystiraan

Bilowga horumarinta adeegga, sida caadiga ah, Liquibase waxaa loo isticmaalaa sidii ku tiirsanaanta dibadda, iyo dhammaan socdaalka waxaa la farsameeyaa marka codsigu bilaabmo. Si kastaba ha ahaatee, waqti ka dib, waxaad ku turunturoon kartaa xaaladaha soo socda:

  • Tahriibku waxa uu noqdaa mid aad u wayn oo wakhti dheer qaata in la dhamaystiro.
  • Waxaa jirta baahi loo qabo guuritaanka deegaan qaybsan, tusaale ahaan, dhowr tusaale oo server-ka xogta isku mar isku mar ah.
    Xaaladdan oo kale, codsashada hijrada muddo aad u dheer waxay keeni doontaa wakhti go'an marka codsigu bilaabmayo. Intaa waxaa dheer, ku dabaqida guuritaanka tusaale kasta oo si gaar ah waxay keeni kartaa in server-yada kala duwan ay ka baxaan isku-xidhka.

Sida loo go'aansado

Xaaladahan oo kale, mashruucaagu horeyba wuu weynaa, laga yaabee xitaa qof weyn, Liquibase wuxuu bilaabay inuu u dhaqmo sidii qalab dibadda ah oo gooni ah. Xaqiiqdu waxay tahay in Liquibase sida maktabad ahaan lagu soo ururiyey fayl dhalo ah, oo waxay u shaqayn kartaa ku tiirsanaanta mashruuc ama si madax-bannaan.

Qaabka goonida ah, waxaad uga tagi kartaa hirgelinta hijrada deegaankaaga CI/CD ama garbaha adag ee maamulayaasha nidaamkaaga iyo khabiirada hawlgelinta. Si aad tan u sameyso waxaad u baahan doontaa khadka taliska Liquibase https://www.liquibase.org/documentation/command_line.html. Habkan, waxay noqonaysaa suurtogal in la bilaabo codsiga ka dib dhammaan socdaalka lagama maarmaanka ah ee la fuliyay.

gunaanad

Dhab ahaantii, waxaa jiri kara khataro badan oo badan marka la shaqeynayo socdaalka xogta, iyo qaar badan oo iyaga ka mid ah waxay u baahan yihiin hab hal abuur leh. Waxaa muhiim ah in la fahmo in haddii aad si sax ah u isticmaashid qalabka, inta badan dhibaatooyinkan waa laga fogaan karaa. Gaar ahaan, waxaan ku qasbanahay inaan wax ka qabto dhammaan dhibaatooyinka liiska ku jira qaabab kala duwan, qaarna waxay ahaayeen natiijada khaladaadkayga. Inta badan tani waxay dhacdaa, dabcan, sababtoo ah feejignaan la'aan, laakiin mararka qaarkood sababtoo ah dembi la'aanta isticmaalka qalabka.

Source: www.habr.com

Add a comment