Yadda ba za ku harbe kanku a ƙafa ba ta amfani da Liquibase

Bai taɓa faruwa ba, kuma ga shi kuma!

A kan aikin na gaba, mun yanke shawarar yin amfani da Liquibase daga farkon don guje wa matsaloli a nan gaba. Kamar yadda ya fito, ba duk 'yan ƙungiyar matasa ba ne suka san yadda ake amfani da shi daidai. Na yi wani taron bita na ciki, wanda daga nan na yanke shawarar juya zuwa labarin.

Wannan labarin ya haɗa da shawarwari masu taimako da kwatancin uku daga cikin fitattun magudanan ruwa da za ku iya fada ciki yayin aiki tare da kayan aikin ƙaura na bayanai, musamman Liquibase. An tsara shi don masu haɓaka Java na matakin Junior da Tsakiya, don ƙarin ƙwararrun masu haɓakawa yana iya zama mai ban sha'awa don tsarawa da maimaita abin da wataƙila an riga an sani.

Yadda ba za ku harbe kanku a ƙafa ba ta amfani da Liquibase

Liquibase da Flyway sune manyan fasahohin gasa don magance matsalolin sarrafa juzu'i na tsarin alaƙa a cikin duniyar Java. Na farko yana da cikakkiyar kyauta, a aikace an fi zaɓa don amfani da shi, wanda shine dalilin da ya sa aka zaɓi Liquibase a matsayin jarumi na ɗaba'ar. Koyaya, wasu ayyukan da aka siffanta na iya zama gama gari, ya danganta da tsarin gine-ginen aikace-aikacenku.

Ƙaurawar dangantaka hanya ce ta tilastawa don magance raunin sassauci na shagunan bayanai na dangantaka. A zamanin salon OOP, salon aiki tare da bayanan yana nufin za mu bayyana tsarin sau ɗaya kuma kada mu sake taɓa shi. Amma gaskiyar ita ce koyaushe abubuwa suna canzawa, kuma ana buƙatar canje-canje ga tsarin tebur sau da yawa. A dabi'ance, tsarin da kansa yana da zafi da rashin jin daɗi.

Ba zan shiga cikin bayanin fasaha da umarni don ƙara ɗakin karatu a cikin aikinku ba, an rubuta isassun labarai akan wannan batu:

Bugu da kari, an riga an sami babban labarin kan batun tukwici masu amfani:

Tips

Ina so in raba shawara da tsokaci na, waɗanda aka haifa ta hanyar gumi, jini da radadin magance matsaloli tare da ƙaura.

1. Kafin farawa, ya kamata ku karanta sashin ayyuka mafi kyau akan shafin Liquibase

Can An bayyana abubuwa masu sauƙi amma masu mahimmanci, ba tare da abin da amfani da ɗakin karatu zai iya dagula rayuwar ku ba. Misali, tsarin da ba na tsari ba na gudanar da canji zai ba dade ko ba dade zai haifar da rudani da karyewar ƙaura. Idan ba ku fitar da sauye-sauye masu dogaro da juna ba a cikin tsarin ma'ajin bayanai da dabaru na ayyuka a lokaci guda, to akwai yuwuwar hakan zai haifar da jajayen gwaje-gwaje ko gurɓataccen yanayi. Bugu da kari, shawarwarin yin amfani da Liquibase akan gidan yanar gizon hukuma sun ƙunshi sakin layi akan haɓakawa da tabbatar da rubutun juzu'i tare da manyan rubutun ƙaura. To, a cikin labarin https://habr.com/ru/post/178665/ akwai misalan lambar da ke da alaƙa da ƙaura da tsarin juyawa.

2. Idan ka fara amfani da kayan aikin ƙaura, kar ka ƙyale gyare-gyaren hannu a tsarin bayanai

Kamar yadda ake cewa: "Da zarar Persil, ko da yaushe Persil." Idan tushen aikace-aikacen ku ya fara sarrafa shi ta kayan aikin Liquibase, duk wani canje-canje na hannu yana haifar da yanayi mara daidaituwa, kuma matakin amincewa da canje-canje ya zama sifili. Hatsari masu yuwuwa - sa'o'i da yawa da aka kashe akan maido da bayanai, a cikin mafi munin yanayin yanayin - uwar garken matattu. Idan ƙungiyar ku tana da ''tsohuwar makaranta'' DBA Architect, cikin haƙuri da tunani da tunani ku bayyana masa yadda abubuwa za su kasance marasa kyau idan kawai ya gyara ma'ajin bayanai ta hanyarsa ta hanyar SQL Developer.

3. Idan an riga an tura canjin canjin zuwa ma'ajiyar, guji gyarawa

Idan wani mai haɓakawa ya ja ya yi amfani da canjin canjin da za a gyara daga baya, tabbas zai tuna da ku da kyakkyawar kalma lokacin da ya sami kuskure lokacin da aikace-aikacen ya fara. Idan gyara canje-canje ko ta yaya ya shiga ci gaba, dole ne ku gangara kan gangara mai santsi na hotfixes. Ma'anar matsalar ta dogara ne akan tabbatar da canje-canje ta hanyar hash jimlar - babban tsarin Liquibase. Lokacin gyara lambar canza saitin, jimlar hash ta canza. Gyara canje-canje yana yiwuwa ne kawai lokacin da zai yiwu a tura dukkan bayanan bayanai daga karce ba tare da rasa bayanai ba. A wannan yanayin, sake fasalin lambar SQL ko XML na iya, akasin haka, sauƙaƙa rayuwa, sa ƙaura ta zama abin karantawa. Misali zai zama halin da ake ciki lokacin da, a farkon aikace-aikacen, an daidaita tsarin tsarin bayanan tushen a cikin ƙungiyar.

4. Ka tabbatar da ma'ajin bayanai idan zai yiwu

Anan, ina tsammanin, komai a bayyane yake. Idan ba zato ba tsammani hijirar ta yi nasara, za a iya mayar da komai. Liquibase yana da kayan aiki na jujjuyawa, amma rubutun jujjuyawa shima mai haɓakawa ya rubuta shi, kuma suna iya samun matsala tare da yuwuwar iri ɗaya kamar a cikin manyan rubutun canje-canje. Wannan yana nufin cewa kunna shi lafiya tare da madadin yana da amfani a kowane hali.

5. Yi amfani da ingantattun bayanan adana bayanai a cikin haɓakawa idan zai yiwu

Idan wannan bai saba wa kwangila da sirri ba, babu bayanan sirri a cikin bayanan, kuma baya yin nauyi kamar rana biyu - kafin amfani da shi akan sabar ƙaura mai rai, zaku iya duba yadda yake aiki akan na'urar haɓakawa kuma ku lissafta kusan 100% na yuwuwar matsalolin yayin hijira.

6. Yi taɗi tare da sauran masu haɓakawa a cikin ƙungiyar

A cikin tsari mai kyau na ci gaba, kowa da kowa a cikin tawagar ya san wanda ke yin abin. A zahiri, sau da yawa ba haka lamarin yake ba, saboda haka, idan kuna shirya canje-canje a cikin tsarin bayanan a matsayin wani ɓangare na aikinku, yana da kyau ku ƙara sanar da ƙungiyar gaba ɗaya game da wannan. Idan wani yana yin canje-canje a layi daya, yakamata ku tsara a hankali. Yana da daraja sadarwa tare da abokan aiki ko da a karshen aiki, ba kawai a farkon. Matsaloli da yawa masu yuwuwa tare da canje-canje za a iya warware su a matakin bita na lamba.

7. Ka yi tunanin abin da kake yi!

Shawarar da ake ganin ta fito fili ta dace da kowane yanayi. Koyaya, da an guje wa matsaloli da yawa idan mai haɓakawa ya sake bincika abin da yake yi da abin da zai iya shafan. Yin aiki tare da ƙaura koyaushe yana buƙatar ƙarin kulawa da daidaito.

Tarkuna

Bari yanzu mu dubi tarkuna na yau da kullun da za ku iya fada idan ba ku bi shawarar da ke sama ba, kuma menene, a gaskiya, ya kamata a yi?

Halin 1. Masu haɓakawa biyu suna ƙoƙarin ƙara sabbin canje-canje a lokaci guda

Yadda ba za ku harbe kanku a ƙafa ba ta amfani da Liquibase
Vasya da Petya so su ƙirƙiri wani version 4 changeet ba tare da sanin juna. Sun yi canje-canje ga tsarin bayanai, kuma sun fitar da buƙatun ja, tare da canza fayiloli daban-daban. Ana yin tsari mai zuwa a ƙasa:

Yadda za a warware

  1. Ko ta yaya, abokan aiki dole ne su amince da tsarin da canje-canjen su ya kamata ya bi, bari mu ce ya kamata a fara amfani da Petin.
  2. Ya kamata mutum ɗaya ya zuba ɗayan kuma ya yiwa Vasya alama tare da sigar 5. Ana iya yin wannan ta hanyar Cherry Pick ko haɗaɗɗen tsari.
  3. Bayan canje-canje, tabbatar da duba ingancin ayyukan da aka yi.
    A zahiri, hanyoyin Liquibase za su ba ku damar samun canje-canje guda biyu na 4 a cikin ma'ajin, don haka zaku iya barin komai yadda yake. Wato, kawai za ku sami bita guda biyu na sigar 4 tare da sunaye daban-daban. Tare da wannan hanyar, sigogin bayanan bayanai sun zama da wahala a kewaya daga baya.

Bugu da kari, Liquibase, kamar gidajen abubuwan sha'awa, yana kiyaye sirrin da yawa. Ɗayan su shine maɓalli mai inganciCheckSum, wanda ya bayyana tun daga sigar 1.7 kuma yana ba ku damar ƙididdige ƙimar zanta mai inganci don takamaiman canje-canje, ba tare da la'akari da abin da aka adana a cikin bayanan ba. Takaddun bayanai https://www.liquibase.org/documentation/changeset.html yana cewa:

Ƙara lissafin abin dubawa wanda aka ɗauka yana aiki don wannan saitin, ba tare da la'akari da abin da aka adana a cikin bayanan ba. Ana amfani da shi da farko lokacin da kuke buƙatar canza canjin saiti kuma ba sa son kurakurai da aka jefa akan bayanan bayanan da ya riga ya gudana (ba hanyar da aka ba da shawarar ba)

Ee, wannan ba a ba da shawarar ba. Amma wani lokacin mayen haske mai ƙarfi shima yana ƙware da dabarun duhu.

Hali na 2: ƙaura da bayanai ke gudana

Yadda ba za ku harbe kanku a ƙafa ba ta amfani da Liquibase

Bari mu ce ba za ku iya amfani da madogaran bayanai daga sabar masu rai ba. Petya ya ƙirƙiri wani canji, ya gwada shi a gida, kuma tare da cikakken tabbacin cewa yana da gaskiya, ya nemi buƙatar ja ga mai haɓakawa. Kamar dai yadda shugaban aikin ya fayyace ko Petya ya duba shi, sannan ya zuba a ciki. Amma turawa akan uwar garken ci gaba ya faɗi.

A gaskiya ma, wannan yana yiwuwa, kuma babu wanda ya tsira daga wannan. Wannan yana faruwa idan an haɗa gyare-gyaren tsarin tebur zuwa takamaiman bayanai daga ma'ajin bayanai. A bayyane yake, idan bayanan Petya ya cika da bayanan gwaji kawai, to bazai rufe duk matsalolin matsala ba. Misali, lokacin share tebur, yana nuna cewa akwai bayanai a cikin wasu tebur ta Maɓallin Ƙasashen waje da ke da alaƙa da bayanan a cikin wanda ake gogewa. Ko kuma lokacin canza nau'in shafi, yana nuna cewa ba 100% na bayanan ba za a iya canzawa zuwa sabon nau'in ba.

Yadda za a warware

  • Rubuta rubutun na musamman waɗanda za a yi amfani da su sau ɗaya tare da ƙaura kuma kawo bayanan cikin tsari mai kyau. Wannan wata hanya ce ta gaba ɗaya don magance matsalar canja wurin bayanai zuwa sababbin tsarin bayan yin amfani da ƙaura, amma ana iya amfani da wani abu makamancin haka kafin, a cikin lokuta na musamman. Wannan hanyar, ba shakka, ba koyaushe ake samuwa ba, saboda gyare-gyaren bayanai akan sabar masu rai na iya zama haɗari har ma da mutuwa.
  • Wata hanya mai banƙyama ita ce shirya canjin canji mai gudana. Wahalar ita ce duk ma’adanar bayanan da aka riga aka yi amfani da su a cikin tsarin da ake da su, dole ne a dawo da su. Abu ne mai yuwuwa cewa za a tilasta wa dukkan ƙungiyar masu goyon baya su naɗa bayanai a gida daga karce.
  • Kuma hanyar da ta fi dacewa a duniya ita ce canja wurin matsalar bayanai zuwa mahallin mahalli, sake ƙirƙirar yanayi iri ɗaya da ƙara sabon canji, zuwa wanda ya karye, wanda zai ƙetare matsalar.
    Yadda ba za ku harbe kanku a ƙafa ba ta amfani da Liquibase

Gabaɗaya, gwargwadon yadda rumbun adana bayanai ke kamanceceniya da tsarin samar da bayanai na uwar garken, ƙananan yuwuwar matsalolin ƙaura za su yi nisa. Kuma, ba shakka, kafin ka aika da canji zuwa ma'ajiyar, ya kamata ka yi tunani sau da yawa idan zai karya wani abu.

Halin 3. Liquibase ya fara amfani da shi bayan ya shiga samarwa

A ce shugaban tawagar ya nemi Petya ya hada da Liquibase a cikin aikin, amma aikin ya riga ya kasance a cikin samarwa kuma akwai tsarin bayanai da aka rigaya.

Saboda haka, matsalar ita ce a kan kowane sabon sabobin ko injunan haɓakawa, dole ne a sake ƙirƙira bayanan tebur daga karce, kuma yanayin da ya riga ya kasance dole ne ya kasance cikin daidaiton yanayi, kasancewa a shirye don karɓar sabbin canje-canje.

Yadda za a warware

Hakanan akwai hanyoyi da yawa:

  • Na farko kuma mafi bayyane shine samun rubutun daban wanda dole ne a yi amfani da shi da hannu yayin fara sabon yanayi.
  • Na biyu, wanda ba a bayyane yake ba, shine samun ƙaura na Liquibase wanda ke cikin wani yanayi na Liquibase daban kuma a yi amfani da shi. Kuna iya karanta ƙarin game da Liquibase Context anan: https://www.liquibase.org/documentation/contexts.html. Gabaɗaya, wannan wata hanya ce mai ban sha'awa wacce za a iya samun nasarar amfani da ita, alal misali, don gwaji.
  • Hanya ta uku ta ƙunshi matakai da yawa. Na farko, dole ne a ƙirƙiri ƙaura don teburin da ke akwai. Sa'an nan kuma dole ne a yi amfani da shi a kan wani yanayi don haka za'a sami jimlar zanta. Mataki na gaba shine fara fara teburin Liquibase mara komai akan sabar mu mara komai, kuma zaku iya sanya rikodin canje-canje "kamar ana amfani dashi" tare da canje-canjen da aka riga aka yi a cikin bayanan cikin tebur tare da tarihin amfani da canje-canje. Don haka, akan sabar da ta riga ta kasance, tarihin zai fara daga sigar 2, kuma duk sabbin mahalli za su kasance iri ɗaya.
    Yadda ba za ku harbe kanku a ƙafa ba ta amfani da Liquibase

Yanayi na 4: Hijira suna girma kuma ba za su iya ci gaba ba

A farkon ci gaban sabis, a matsayin mai mulkin, ana amfani da Liquibase azaman dogaro na waje, kuma ana sarrafa duk ƙaura lokacin da aikace-aikacen ya fara. Koyaya, bayan lokaci, zaku iya tuntuɓe akan waɗannan lamuran:

  • Hijira sun zama babba kuma suna ɗaukar lokaci mai tsawo don kammalawa.
  • Akwai buƙatar yin ƙaura a cikin wuraren da aka rarraba, misali, a lokuta da yawa na sabar bayanai a lokaci guda.
    A wannan yanayin, yin ƙaura na dogon lokaci zai haifar da ƙarewar lokaci lokacin da aikace-aikacen ya fara. Hakanan, amfani da ƙaura akan kowane misalan aikace-aikace na iya haifar da sabar daban-daban kasancewa cikin yanayin daidaitawa.

Yadda za a warware

A irin waɗannan lokuta, aikinku ya riga ya girma, watakila ma babba, kuma Liquibase ya fara aiki azaman kayan aiki na waje daban. Gaskiyar ita ce, Liquibase, a matsayin ɗakin karatu, an tattara shi a cikin fayil ɗin kwalba, kuma yana iya aiki a matsayin dogara a cikin aikin, da kuma tsaye.

Wurin layi, zaku iya barin aikace-aikacen ƙaura zuwa yanayin CI/CD ɗinku ko zuwa ga kafaɗun sysadmins/masu turawa. Don yin wannan, kuna buƙatar layin umarni na Liquibase https://www.liquibase.org/documentation/command_line.html. A wannan yanayin, yana yiwuwa a ƙaddamar da aikace-aikacen bayan an kammala duk ƙauran da suka dace.

ƙarshe

A gaskiya ma, akwai ƙarin matsaloli masu yawa yayin aiki tare da ƙaura na bayanai, kuma da yawa daga cikinsu suna buƙatar hanyar ƙirƙira. Yana da mahimmanci a fahimci cewa idan kun yi amfani da kayan aiki daidai, to yawancin waɗannan tarko za a iya kauce masa. Musamman ma, dole ne na fuskanci duk matsalolin da aka jera ta nau'i daban-daban, kuma wasu daga cikinsu sun kasance sakamakon jamb na. Ainihin, wannan yana faruwa, ba shakka, saboda rashin kulawa, amma wani lokacin - saboda rashin iyawar mai laifi don amfani da kayan aiki.

source: www.habr.com

Add a comment