Pa ntchito yathu yotsatira, tinaganiza zogwiritsa ntchito Liquibase kuyambira pachiyambi kuti tipewe mavuto m'tsogolomu. Monga momwe zikukhalira, si achinyamata onse a m'gulu omwe amadziwa kugwiritsa ntchito moyenera. Ndinakhala ndi msonkhano wamkati, womwe ndinaganiza zosintha kukhala nkhani.
Nkhaniyi ili ndi malangizo othandiza komanso kufotokozera zovuta zitatu zoonekeratu zomwe mungagwere mukamagwira ntchito ndi zida zosamukira ku database, makamaka Liquibase. Zopangidwira opanga ma Java pamagulu a Junior ndi Middle; kwa opanga odziwa zambiri zitha kukhala zosangalatsa kupanga ndikubwereza zomwe zimadziwika kale.
Liquibase ndi Flyway ndiye matekinoloje akuluakulu omwe amapikisana nawo pakuthana ndi zovuta zowongolera zamitundu yamaubale m'dziko la Java. Yoyamba ndi yaulere kwathunthu, pochita imasankhidwa nthawi zambiri kuti igwiritsidwe ntchito, ndichifukwa chake Liquibase adasankhidwa kukhala ngwazi yofalitsa. Komabe, zina mwazomwe zafotokozedwa zitha kukhala zapadziko lonse lapansi, kutengera kapangidwe kanu kantchito.
Kusamuka kwa maubwenzi ndi njira yokakamizika yolimbana ndi kusinthasintha kofooka kwa malo osungira deta. M'nthawi ya mafashoni a OOP, kalembedwe kantchito ndi nkhokwe kumatanthauza kuti titha kufotokozera schema kamodzi osakhudzanso. Koma zoona zake n'zakuti nthawi zonse zinthu zimasintha, ndipo kusintha kwa tebulo kumafunika nthawi zambiri. Mwachibadwa, ndondomeko yokha ikhoza kukhala yopweteka komanso yosasangalatsa.
Sindipita mozama pakulongosola zaukadaulo ndi malangizo owonjezera laibulale ku polojekiti yanu; zolemba zingapo zalembedwa pamutuwu:
Monga mwambi umati: "Kamodzi Persil, Persil nthawi zonse." Ngati maziko a pulogalamu yanu ayamba kuyang'aniridwa ndi Liquibase, kusintha kulikonse pamanja kumabweretsa kusakhazikika, ndipo mulingo wa chidaliro pazosintha umakhala ziro. Zowopsa zomwe zingatheke zimaphatikizapo maola angapo omwe agwiritsidwa ntchito kubwezeretsa nkhokwe; muzochitika zoyipa kwambiri, seva yakufa. Ngati muli ndi "sukulu yakale" DBA Architect pagulu lanu, moleza mtima ndi moganizira mufotokozereni momwe zinthu zidzakhalire ngati angosintha nkhokwe molingana ndi kumvetsetsa kwake kuchokera kwa Wopanga SQL wokhazikika.
3. Ngati chosinthira chakankhidwira kale m'nkhokwe, pewani kusintha
Ngati woyambitsa wina adakoka ndikuyika chosinthira, chomwe chidzasinthidwa pambuyo pake, adzakukumbukirani ndi mawu okoma mtima akalandira cholakwika poyambitsa pulogalamuyo. Ngati kusintha kusinthako mwanjira ina kutayikira mu chitukuko, muyenera kutsatira otsetsereka a hotfixes. Chofunikira cha vutoli chimadalira kutsimikizika kwa kusintha kwa hash sum - njira yayikulu ya Liquibase. Mukasintha nambala yosinthira, kuchuluka kwa hashi kumasintha. Kusintha zosintha kumatheka pokhapokha ngati kuli kotheka kuyika nkhokwe yonse kuyambira poyambira popanda kutaya deta. Pankhaniyi, kukonzanso SQL kapena XML code kungathe, m'malo mwake, kupangitsa moyo kukhala wosavuta ndikupangitsa kusamuka kuwerengeka. Chitsanzo chingakhale momwe, kumayambiriro kwa ntchito, schema ya nkhokwe ya gwero idagwirizana mkati mwa gulu.
4. Khalani ndi zosunga zobwezeretsera zankhokwe ngati nkotheka
Apa, ndikuganiza, zonse ndi zomveka. Ngati mwadzidzidzi kusamukako sikunapambane, chirichonse chikhoza kubwezeretsedwanso. Liquibase ili ndi chida chosinthira kusintha, koma zolemba za rollback zimalembedwanso ndi wopangayo mwiniwake, ndipo amatha kukhala ndi mavuto omwe ali ndi mwayi wofanana ndi zolemba zakusintha kwakukulu. Izi zikutanthauza kuti ndizothandiza kusewera otetezeka ndi zosunga zobwezeretsera mulimonse.
Wina aziwonjezera yachiwiri kwa iye ndikuyika zosintha za Vasya ndi mtundu 5. Izi zitha kuchitika kudzera mu Cherry Pick kapena kuphatikiza mwaukhondo.
Pambuyo pakusintha, muyenera kuyang'ananso kutsimikizika kwa zomwe mwachita.
M'malo mwake, njira za Liquibase zimakupatsani mwayi wokhala ndi zosintha ziwiri za 4 m'malo osungirako, kuti mutha kusiya zonse momwe zilili. Ndiye kuti, mudzakhala ndi zosintha ziwiri za mtundu 4 wokhala ndi mayina osiyanasiyana. Ndi njira iyi, pambuyo pake zimakhala zovuta kwambiri kuyendetsa matembenuzidwe a database.
Kuphatikiza apo, Liquibase, monga nyumba ya hobbits, imasunga zinsinsi zambiri. Chimodzi mwa izo ndi kiyi yovomerezeka yaCheckSum, yomwe idawonekera mu mtundu 1.7 ndikukulolani kuti mutchule mtengo wovomerezeka wa hashi pakusintha kwina, mosasamala kanthu za zomwe zasungidwa mu database. Zolemba https://www.liquibase.org/documentation/changeset.html akuti:
Tiyerekeze kuti gulu lotsogolera linapempha Petya kuti aphatikizepo Liquibase mu polojekitiyi, koma pulojekitiyi ikupangidwa kale ndipo pali ndondomeko yomwe ilipo kale.
Chifukwa chake, vuto ndilakuti pa maseva atsopano kapena makina opanga mapulogalamu, matebulowa amayenera kupangidwanso kuyambira pachiyambi, ndipo malo omwe alipo ayenera kukhala osasinthasintha, okonzeka kuvomereza zosintha zatsopano.
Momwe mungasankhire
Palinso njira zingapo:
Choyamba komanso chodziwikiratu ndicho kukhala ndi zolemba zosiyana zomwe ziyenera kugwiritsidwa ntchito pamanja poyambitsa malo atsopano.
Chachiwiri sichidziwikiratu, khalani ndi kusamuka kwa Liquibase komwe kuli mu Liquibase Context ina, ndikuyiyika. Mutha kuwerenga zambiri za Liquibase Context apa: https://www.liquibase.org/documentation/contexts.html. Kawirikawiri, iyi ndi njira yosangalatsa yomwe ingagwiritsidwe ntchito bwino, mwachitsanzo, kuyesa.
Njira yachitatu imakhala ndi masitepe angapo. Choyamba, kusamuka kuyenera kupangidwa kwa matebulo omwe alipo. Kenako iyenera kugwiritsidwa ntchito kumalo ena ndipo motero ndalama zake za hashi zidzapezedwa. Chotsatira ndikuyambitsa matebulo opanda kanthu a Liquibase pa seva yathu yopanda kanthu, ndipo patebulo lomwe lili ndi mbiri yakugwiritsa ntchito zosintha, mutha kuyika pamanja mbiri ya "monga ngati ikugwiritsidwa ntchito" ndi zosintha zomwe zilipo kale mu database. . Chifukwa chake, pa seva yomwe ilipo, kuwerengera mbiri kudzayamba kuchokera ku mtundu 2, ndipo malo onse atsopano azichita chimodzimodzi.
Pakufunika kusamuka m'malo ogawidwa, mwachitsanzo, pama seva angapo a database nthawi imodzi.
Pamenepa, kugwiritsa ntchito kusamuka kwa nthawi yayitali kumapangitsa kuti ntchitoyo iyambike. Kuonjezera apo, kugwiritsa ntchito kusamuka pazochitika zilizonse zogwiritsira ntchito padera kungapangitse ma seva osiyanasiyana kukhala osagwirizana.
Momwe mungasankhire
Zikatero, polojekiti yanu ndi yayikulu kale, mwina ngakhale wamkulu, ndipo Liquibase imayamba kuchita ngati chida chakunja. Chowonadi ndi chakuti Liquibase ngati laibulale imapangidwa kukhala fayilo ya mtsuko, ndipo imatha kugwira ntchito ngati kudalira mkati mwa polojekiti kapena paokha.
Munjira yoyimilira, mutha kusiya kukhazikitsidwa kwakusamuka kupita kumalo anu a CI / CD kapena pamapewa amphamvu a oyang'anira makina anu ndi akatswiri otumiza. Kuti muchite izi mudzafunika mzere wolamula wa Liquibase https://www.liquibase.org/documentation/command_line.html. Munjira iyi, zimakhala zotheka kukhazikitsa pulogalamuyo pambuyo poti kusamuka koyenera kukuchitika.
Pomaliza
M'malo mwake, pakhoza kukhala misampha yambiri mukamagwira ntchito ndi kusamuka kwa database, ndipo ambiri amafunikira njira yopangira. Ndikofunikira kumvetsetsa kuti ngati mugwiritsa ntchito chidacho moyenera, misampha yambiri imatha kupewedwa. Mwachindunji, ndinayenera kuthana ndi mavuto onse omwe adatchulidwa m'njira zosiyanasiyana, ndipo ena a iwo anali zotsatira za zolakwa zanga. Nthawi zambiri izi zimachitika chifukwa cha kusasamala, koma nthawi zina chifukwa cholephera kugwiritsa ntchito chida.