Yuav ua li cas tsis tua koj tus kheej hauv ko taw siv Liquibase
Nws yeej tsis tshwm sim, thiab ntawm no yog dua!
Ntawm qhov project tom ntej, peb txiav txim siab siv Liquibase los ntawm qhov pib kom tsis txhob muaj teeb meem yav tom ntej. Raws li nws tau muab tawm, tsis yog txhua tus tub ntxhais hluas pab pawg paub siv nws kom raug. Kuv tau khiav ib qho kev cob qhia sab hauv, uas kuv mam li txiav txim siab tig mus rau hauv ib tsab xov xwm.
Yog tias lwm tus tsim tawm rub tawm thiab siv qhov hloov pauv uas yuav raug kho tom qab, nws yuav nco ntsoov koj nrog lo lus zoo thaum nws tau txais qhov yuam kev thaum daim ntawv thov pib. Yog tias kho cov kev hloov pauv qee qhov xau mus rau hauv txoj kev loj hlob, koj yuav tau mus rau qhov nqes nqes ntawm qhov kev kho tshiab. Lub ntsiab lus ntawm qhov teeb meem nyob ntawm qhov kev lees paub ntawm kev hloov pauv los ntawm hash sum - lub ntsiab mechanism ntawm Liquibase. Thaum kho qhov hloov pauv code, tus lej hash hloov pauv. Kev hloov pauv hloov tau tsuas yog thaum nws tuaj yeem xa tag nrho cov ntaub ntawv los ntawm kos yam tsis tau poob cov ntaub ntawv. Hauv qhov no, refactoring SQL lossis XML code tuaj yeem, ntawm qhov tsis sib xws, ua kom lub neej yooj yim dua, ua rau kev tsiv teb tsaws chaw nyeem tau ntau dua. Ib qho piv txwv yuav yog qhov xwm txheej thaum, thaum pib ntawm daim ntawv thov, lub schema ntawm qhov chaw database tau koom tes hauv pab pawg.
4. Muaj pov thawj cov ntaub ntawv thaub qab yog tias ua tau
Ntawm no, kuv xav tias, txhua yam yog qhov tseeb. Yog tias tam sim ntawd qhov kev tsiv teb tsaws chaw ua tsis tiav, txhua yam tuaj yeem rov qab los. Liquibase muaj cov cuab yeej rov qab, tab sis cov ntawv sau rov qab kuj tau sau los ntawm tus tsim tawm nws tus kheej, thiab lawv tuaj yeem muaj teeb meem nrog qhov tshwm sim zoo ib yam li hauv cov ntawv hloov pauv tseem ceeb. Qhov no txhais tau hais tias ua si nws muaj kev nyab xeeb nrog thaub qab yog qhov tseem ceeb hauv txhua qhov xwm txheej.
5. Siv cov ntaub ntawv pov thawj pov thawj hauv kev txhim kho yog tias ua tau
Yog tias qhov no tsis cuam tshuam cov ntawv cog lus thiab kev ceev ntiag tug, tsis muaj cov ntaub ntawv tus kheej hauv cov ntaub ntawv, thiab nws tsis hnyav li ob lub hnub - ua ntej siv nws ntawm cov neeg tsiv teb tsaws chaw nyob, koj tuaj yeem tshawb xyuas seb nws ua haujlwm li cas ntawm tus tsim tawm lub tshuab thiab suav yuav luag 100%. ntawm tej teeb meem thaum tsiv teb tsaws chaw.
6. Tham nrog lwm tus tsim tawm hauv pab pawg
Hauv cov txheej txheem kev txhim kho zoo, txhua tus hauv pab pawg paub tias leej twg ua dab tsi. Hauv kev muaj tiag, qhov no feem ntau tsis yog li ntawd, yog li ntawd, yog tias koj tab tom npaj cov kev hloov pauv hauv cov qauv database uas yog ib feem ntawm koj txoj haujlwm, nws raug nquahu kom ceeb toom rau tag nrho pab neeg txog qhov no. Yog hais tias ib tug neeg tab tom hloov nyob rau hauv parallel, koj yuav tsum npaj kom zoo. Nws tsim nyog sib txuas lus nrog cov npoj yaig txawm tias thaum kawg ntawm kev ua haujlwm, tsis yog thaum pib xwb. Muaj ntau yam teeb meem nrog kev hloov pauv tuaj yeem daws tau ntawm theem kev tshuaj xyuas cov cai.
7. Xav seb koj ua dab tsi!
Zoo li nws tus kheej pom cov lus qhia siv tau rau txhua qhov xwm txheej. Txawm li cas los xij, ntau yam teeb meem tuaj yeem zam tau yog tias tus tsim tawm tau rov txheeb xyuas qhov nws tau ua thiab nws yuav cuam tshuam dab tsi. Ua haujlwm nrog kev tsiv teb tsaws ib txwm xav tau kev saib xyuas ntxiv thiab raug.
Cuab
Tam sim no cia peb saib cov cuab yeej cuab tam uas koj tuaj yeem poob rau hauv yog tias koj tsis ua raws li cov lus qhia saum toj no, thiab qhov tseeb, yuav tsum ua li cas?
Qhov xwm txheej 1. Ob tus neeg tsim tawm sim ntxiv cov kev hloov pauv tshiab rau tib lub sijhawm
Ua li cas, cov npoj yaig yuav tsum pom zoo rau qhov kev txiav txim uas lawv cov kev hloov pauv yuav tsum mus, cia peb hais tias Petin yuav tsum tau thov ua ntej.
Ib tug neeg yuav tsum ncuav rau lwm tus nyob rau hauv thiab cim Vasya lub changeset nrog version 5. Qhov no yuav ua tau ntawm Cherry Pick los yog ib tug zoo sib xws.
Tom qab cov kev hloov pauv, nco ntsoov xyuas qhov siv tau ntawm cov kev nqis tes ua.
Qhov tseeb, Liquibase mechanisms yuav tso cai rau koj kom muaj ob lub version 4 hloov pauv hauv qhov chaw cia khoom, yog li koj tuaj yeem tawm txhua yam raws li nws yog. Ntawd yog, koj yuav tsuas muaj ob qhov kev hloov kho ntawm version 4 nrog cov npe sib txawv. Nrog rau txoj hauv kev no, databases versions nyuaj heev rau kev taug qab tom qab.
Tsis tas li ntawd, Liquibase, zoo li lub tsev ntawm hobbits, khaws ntau qhov zais cia. Ib qho ntawm lawv yog tus yuam sij validCheckSum, uas tau tshwm sim txij li version 1.7 thiab tso cai rau koj los qhia meej tus nqi hash siv tau rau ib qho kev hloov pauv tshwj xeeb, tsis hais qhov twg yog khaws cia hauv cov ntaub ntawv. Cov ntaub ntawv https://www.liquibase.org/documentation/changeset.html hais li no:
Ntxiv ib daim tshev uas suav tias siv tau rau qhov kev hloov pauv no, tsis hais qhov twg yog khaws cia hauv cov ntaub ntawv. Siv feem ntau thaum koj xav tau hloov pauv HloovSet thiab tsis xav kom yuam kev cuam tshuam rau cov ntaub ntawv uas nws tau khiav lawm (tsis yog cov txheej txheem pom zoo)
Yog, qhov no tsis pom zoo. Tab sis qee zaum ib tug muaj zog lub teeb magician kuj masters cov tswv yim tsaus.
Case 2: Data-driven migration
Cia peb hais tias koj tsis tuaj yeem siv cov ntaub ntawv thaub qab los ntawm cov servers nyob. Petya tau tsim ib qho kev hloov pauv, sim nws hauv zos, thiab nrog kev ntseeg siab tag nrho tias nws yog, tau thov rub mus rau tus tsim tawm. Tsuas yog nyob rau hauv rooj plaub, tus thawj coj ntawm qhov project tau qhia meej seb Petya puas tau kuaj xyuas nws, thiab tom qab ntawd muab tso rau hauv. Tab sis kev xa tawm ntawm kev txhim kho server tau poob.
Qhov tseeb, qhov no yog ua tau, thiab tsis muaj leej twg tiv thaiv qhov no. Qhov no tshwm sim yog tias kev hloov kho rau lub rooj qauv yog qee yam khi rau cov ntaub ntawv tshwj xeeb los ntawm cov ntaub ntawv. Pom tseeb, yog tias Petya cov ntaub ntawv khaws cia tsuas yog cov ntaub ntawv xeem, ces nws yuav tsis npog tag nrho cov teeb meem. Piv txwv li, thaum rho tawm ib lub rooj, nws hloov tawm tias muaj cov ntaub ntawv nyob rau hauv lwm lub rooj los ntawm Txawv Teb Chaws Key txuam nrog cov ntaub ntawv nyob rau hauv ib tug raug deleted. Los yog thaum hloov hom kab, nws hloov tawm tias tsis yog 100% ntawm cov ntaub ntawv tuaj yeem hloov mus rau hom tshiab.
Yuav daws li cas
Sau cov ntawv tshwj xeeb uas yuav raug siv ib zaug nrog rau kev tsiv teb tsaws thiab nqa cov ntaub ntawv mus rau hauv daim ntawv kom raug. Qhov no yog ib txoj hauv kev los daws qhov teeb meem ntawm kev hloov cov ntaub ntawv mus rau cov qauv tshiab tom qab thov kev tsiv teb tsaws, tab sis qee yam zoo sib xws tuaj yeem siv ua ntej, tshwj xeeb. Txoj kev no, ntawm chav kawm, tsis yog ib txwm muaj, vim tias kev kho cov ntaub ntawv ntawm cov servers nyob tuaj yeem ua rau muaj kev phom sij thiab txawm tias tuag taus.
Lwm txoj kev tsis yooj yim yog los kho qhov hloov pauv uas twb muaj lawm. Qhov nyuaj yog tias tag nrho cov databases uas nws twb tau thov nyob rau hauv nws daim ntawv uas twb muaj lawm yuav tsum tau rov qab. Nws yog qhov ua tau tias tag nrho pab pawg backend yuav raug yuam kom nyob hauv zos dov cov ntaub ntawv los ntawm kos.
Scenario 4: Kev tsiv teb tsaws chaw tau loj heev thiab ua tsis tau
Thaum pib ntawm kev txhim kho kev pabcuam, raws li txoj cai, Liquibase yog siv los ua qhov kev vam khom sab nraud, thiab txhua qhov kev tsiv teb tsaws raug ua tiav thaum daim ntawv thov pib. Txawm li cas los xij, dhau sijhawm, koj tuaj yeem ua rau muaj teeb meem hauv qab no:
Kev tsiv teb tsaws chaw ua loj heev thiab siv sijhawm ntev los ua kom tiav.
Yuav tsum tau tsiv teb tsaws chaw nyob rau hauv ib puag ncig kev faib tawm, piv txwv li, ntawm ntau zaus ntawm database servers tib lub sijhawm.
Hauv qhov no, kev thov kev tsiv teb tsaws mus ntev dhau lawm yuav ua rau lub sijhawm ua haujlwm thaum daim ntawv thov pib. Tsis tas li ntawd, kev thov kev tsiv teb tsaws chaw ntawm ib daim ntawv thov piv txwv tuaj yeem ua rau cov servers sib txawv nyob hauv lub xeev tsis sib xws.
Yuav daws li cas
Hauv cov xwm txheej zoo li no, koj qhov project twb loj lawm, tej zaum txawm tias yog ib tus neeg laus, thiab Liquibase pib ua raws li cov cuab yeej sab nraud. Qhov tseeb yog tias Liquibase, raws li lub tsev qiv ntawv, tau sib sau ua ke rau hauv cov ntaub ntawv lub thawv, thiab tuaj yeem ua haujlwm raws li kev vam khom hauv qhov project, nrog rau ib leeg.
Offline, koj tuaj yeem tawm hauv daim ntawv thov kev tsiv teb tsaws chaw rau koj qhov chaw CI / CD lossis rau lub xub pwg nyom ntawm koj sysadmins / deployers. Txhawm rau ua qhov no, koj xav tau Liquibase kab hais kom ua https://www.liquibase.org/documentation/command_line.html. Hauv hom no, nws tuaj yeem tso tawm daim ntawv thov tom qab tag nrho cov kev tsiv teb tsaws tsim nyog tau ua tiav.
xaus
Qhov tseeb, muaj ntau ntau qhov teeb meem thaum ua hauj lwm nrog database migrations, thiab ntau ntawm lawv xav tau ib tug muaj tswv yim mus kom ze. Nws yog ib qho tseem ceeb kom nkag siab tias yog tias koj siv lub cuab yeej kom raug, feem ntau ntawm cov cuab yeej no tuaj yeem zam tau. Tshwj xeeb, kuv yuav tsum tau ntsib txhua yam teeb meem uas tau teev tseg hauv ntau hom, thiab qee qhov ntawm lawv yog qhov tshwm sim ntawm kuv cov jambs. Yeej, qhov no tshwm sim, ntawm chav kawm, vim tsis mloog, tab sis qee zaum - vim kev ua txhaum cai tsis siv lub cuab yeej.