Liquibase භාවිතයෙන් පාදයට වෙඩි තැබීමෙන් වැළකී සිටින්නේ කෙසේද?

මීට පෙර කවදාවත් සිදු නොවූ අතර, මෙන්න අපි නැවතත්!

අපගේ මීළඟ ව්‍යාපෘතියේදී, අනාගතයේදී ගැටළු මඟහරවා ගැනීම සඳහා අපි මුල සිටම Liquibase භාවිතා කිරීමට තීරණය කළෙමු. පෙනෙන පරිදි, සියලුම තරුණ කණ්ඩායම් සාමාජිකයින් එය නිවැරදිව භාවිතා කරන්නේ කෙසේදැයි නොදනී. මම අභ්‍යන්තර වැඩමුළුවක් පැවැත්වූ අතර එය ලිපියක් බවට පත් කිරීමට මම තීරණය කළෙමි.

ලිපියෙහි ප්‍රයෝජනවත් ඉඟි සහ සම්බන්ධතා දත්ත සමුදා සංක්‍රමණ මෙවලම්, විශේෂයෙන් Liquibase සමඟ වැඩ කිරීමේදී ඔබට වැටිය හැකි වඩාත්ම පැහැදිලි අන්තරායන් තුන පිළිබඳ විස්තරයක් ඇතුළත් වේ. කනිෂ්ඨ සහ මධ්‍යම මට්ටමේ ජාවා සංවර්ධකයින් සඳහා නිර්මාණය කර ඇත; වඩා පළපුරුදු සංවර්ධකයින් සඳහා එය ව්‍යුහගත කිරීමට සහ දැනටමත් දන්නා දේ නැවත නැවත කිරීමට උනන්දුවක් දැක්විය හැකිය.

Liquibase භාවිතයෙන් පාදයට වෙඩි තැබීමෙන් වැළකී සිටින්නේ කෙසේද?

Liquibase සහ Flyway යනු Java ලෝකයේ සම්බන්ධතා ව්‍යුහයන්ගේ අනුවාද පාලන ගැටළු විසඳීම සඳහා ප්‍රධාන තරඟකාරී තාක්ෂණයන් වේ. පළමු එක සම්පූර්ණයෙන්ම නොමිලේ, ප්‍රායෝගිකව එය බොහෝ විට භාවිතය සඳහා තෝරා ගනු ලැබේ, එබැවින් ප්‍රකාශනයේ වීරයා ලෙස Liquibase තෝරා ගනු ලැබේ. කෙසේ වෙතත්, ඔබගේ යෙදුම් ගෘහ නිර්මාණ ශිල්පය මත පදනම්ව විස්තර කර ඇති සමහර භාවිතයන් විශ්වීය විය හැක.

සම්බන්ධතා ව්‍යුහයන්ගේ සංක්‍රමණයන් යනු සම්බන්ධතා දත්ත ගබඩාවල දුර්වල නම්‍යශීලීභාවය සමඟ කටයුතු කිරීමට බලහත්කාර මාර්ගයකි. OOP විලාසිතා යුගයේ දී, දත්ත සමුදායන් සමඟ වැඩ කිරීමේ විලාසය අදහස් කළේ අපි එක් වරක් ස්කීමා විස්තර කරන අතර එය නැවත ස්පර්ශ නොකරන බවයි. නමුත් යථාර්ථය සෑම විටම දේවල් වෙනස් වන අතර, මේසයේ ව්යුහයේ වෙනස්කම් බොහෝ විට අවශ්ය වේ. ස්වාභාවිකවම, ක්රියාවලියම වේදනාකාරී හා අප්රසන්න විය හැකිය.

ඔබේ ව්‍යාපෘතියට පුස්තකාලයක් එක් කිරීම සඳහා වන තාක්ෂණය සහ උපදෙස් පිළිබඳ විස්තරය මම ගැඹුරට නොයමි; මෙම මාතෘකාව පිළිබඳ ලිපි කිහිපයක් ලියා ඇත:

මීට අමතරව, ප්රයෝජනවත් ඉඟි මාතෘකාව පිළිබඳ විශිෂ්ට ලිපියක් දැනටමත් තිබේ:

ඉඟි

සංක්‍රමණය සමඟ ගැටලු විසඳීමේ දහඩිය, ලේ සහ වේදනාව තුළින් උපත ලැබූ මගේ උපදෙස් සහ අදහස් බෙදා ගැනීමට මට අවශ්‍යය.

1. වැඩ ආරම්භ කිරීමට පෙර, ඔබ හොඳම පරිචයන් අංශය සමඟ ඔබ හුරුපුරුදු විය යුතුය වෙබ් අඩවිය දියර පදනම

එතන සරල නමුත් ඉතා වැදගත් දේවල් විස්තර කර ඇත, එසේ නොමැතිව පුස්තකාලය භාවිතා කිරීමෙන් ඔබේ ජීවිතය අවුල් විය හැක. උදාහරණයක් ලෙස, වෙනස් කිරීම් කළමනාකරණය කිරීම සඳහා ව්‍යුහගත නොවන ප්‍රවේශයක් ඉක්මනින් හෝ පසුව ව්‍යාකූලත්වයට සහ බිඳුණු සංක්‍රමණවලට තුඩු දෙනු ඇත. ඔබ එකවර දත්ත සමුදා ව්‍යුහයට සහ සේවා තර්කයට අන්‍යෝන්‍ය වශයෙන් රඳා පවතින වෙනස්කම් සිදු නොකරන්නේ නම්, මෙය රතු පරීක්ෂණ හෝ බිඳුණු පරිසරයකට තුඩු දෙන ඉහළ සම්භාවිතාවක් ඇත. මීට අමතරව, නිල වෙබ් අඩවියේ Liquibase භාවිතා කිරීම සඳහා වන නිර්දේශවල ප්‍රධාන සංක්‍රමණ විධානාවලි සමඟ පෙරළීමේ ස්ක්‍රිප්ට් සංවර්ධනය කිරීම සහ පරීක්ෂා කිරීම පිළිබඳ වගන්තියක් අඩංගු වේ. හොඳයි, ලිපියේ https://habr.com/ru/post/178665/ සංක්‍රමණ සහ ආපසු හැරීමේ යාන්ත්‍රණය සම්බන්ධයෙන් කේත උදාහරණ ඇත.

2. ඔබ සංක්‍රමණ මෙවලම් භාවිතා කිරීමට පටන් ගන්නේ නම්, දත්ත සමුදා ව්‍යුහයේ අතින් නිවැරදි කිරීම් වලට ඉඩ නොදෙන්න

කියමනට අනුව: "වරක් පර්සිල්, සෑම විටම පර්සිල්." ඔබගේ යෙදුමේ පදනම Liquibase විසින් කළමනාකරණය කිරීමට පටන් ගන්නේ නම්, ඕනෑම අතින් සිදුකරන වෙනස්කම් වහාම නොගැලපෙන තත්වයකට මඟ පාදයි, සහ වෙනස් කිරීම් කෙරෙහි විශ්වාසයේ මට්ටම ශුන්‍ය වේ. විභව අවදානම් අතර දත්ත සමුදාය ප්‍රතිසාධනය කිරීමට ගත කළ පැය කිහිපයක් ඇතුළත් වේ; නරකම අවස්ථාවක, මිය ගිය සේවාදායකයක්. ඔබට ඔබේ කණ්ඩායමේ "පැරණි පාසල්" DBA ගෘහ නිර්මාණ ශිල්පියෙකු සිටී නම්, කොන්දේසි සහිත SQL සංවර්ධකයෙකුගෙන් ඔහුගේම අවබෝධය අනුව දත්ත සමුදාය සරලව සංස්කරණය කළහොත් සිදුවන නරක දේ ඉවසීමෙන් සහ කල්පනාකාරීව ඔහුට පැහැදිලි කරන්න.

3. වෙනස්කම් කට්ටලය දැනටමත් ගබඩාවට තල්ලු කර ඇත්නම්, සංස්කරණය කිරීමෙන් වළකින්න

වෙනත් සංවර්ධකයෙක් ඇදගෙන වෙනස් කිරීමක් යෙදුවේ නම්, එය පසුව සංස්කරණය කරනු ලැබේ, යෙදුම ආරම්භ කිරීමේදී ඔහුට දෝෂයක් ලැබුණු විට ඔහු අනිවාර්යයෙන්ම කාරුණික වචනයකින් ඔබව සිහිපත් කරනු ඇත. වෙනස්කම් කට්ටලය සංස්කරණය කිරීම කෙසේ හෝ සංවර්ධනයට කාන්දු වුවහොත්, ඔබට හොට්ෆික්ස් වල ලිස්සන බෑවුම අනුගමනය කිරීමට සිදුවනු ඇත. ගැටලුවේ සාරය රඳා පවතින්නේ හෑෂ් එකතුවෙන් වෙනස්කම් වලංගු කිරීම මත ය - Liquibase හි ප්‍රධාන යාන්ත්‍රණය. වෙනස් කිරීමේ කේතය සංස්කරණය කරන විට, හැෂ් ප්‍රමාණය වෙනස් වේ. වෙනස් කිරීම් සංස්කරණය කළ හැක්කේ දත්ත නැතිවීමකින් තොරව මුල සිටම සම්පූර්ණ දත්ත සමුදාය යෙදවීමට හැකි වූ විට පමණි. මෙම අවස්ථාවෙහිදී, SQL හෝ XML කේතය ප්‍රතිනිර්මාණය කිරීම, ඊට ප්‍රතිවිරුද්ධව, ජීවිතය පහසු කරවන අතර සංක්‍රමණයන් වඩාත් කියවිය හැක. උදාහරණයක් ලෙස, යෙදුම ආරම්භයේදී, මූලාශ්‍ර දත්ත සමුදායේ යෝජනා ක්‍රමය කණ්ඩායම තුළ එකඟ වූ තත්වයක් විය හැකිය.

4. හැකි නම් සත්‍යාපිත දත්ත සමුදා උපස්ථ තබා ගන්න

මෙන්න, මම හිතන්නේ, හැම දෙයක්ම පැහැදිලියි. හදිසියේම සංක්‍රමණය අසාර්ථක වූයේ නම්, සියල්ල ආපසු ලබා දිය හැකිය. Liquibase හට වෙනස්කම් පෙරළීම සඳහා මෙවලමක් ඇත, නමුත් පෙරළීමේ ස්ක්‍රිප්ට් ද සංවර්ධකයා විසින්ම ලියා ඇති අතර, ප්‍රධාන වෙනස් කිරීම් කට්ටලයේ ස්ක්‍රිප්ට් වලට සමාන සම්භාවිතාව සමඟ ඔවුන්ට ගැටළු ඇති විය හැකිය. මෙයින් අදහස් කරන්නේ ඕනෑම අවස්ථාවක උපස්ථ සමඟ එය ආරක්ෂිතව වාදනය කිරීම ප්‍රයෝජනවත් බවයි.

5. හැකි නම්, සංවර්ධනයේදී ඔප්පු කළ දත්ත සමුදා උපස්ථ භාවිතා කරන්න

මෙය කොන්ත්‍රාත්තු සහ පෞද්ගලිකත්වයට පටහැනි නොවේ නම්, දත්ත සමුදායේ පුද්ගලික දත්ත නොමැත, එය සූර්යයන් දෙකක් තරම් බර නොවේ - එය සජීවී සංක්‍රමණ සේවාදායකයන්හි භාවිතා කිරීමට පෙර, එය සංවර්ධකයාගේ යන්ත්‍රයේ ක්‍රියා කරන්නේ කෙසේදැයි පරීක්ෂා කර ගණනය කළ හැකිය. සංක්‍රමණයේදී ඇති විය හැකි ගැටලුවලින් 100%ක් පමණ.

6. කණ්ඩායමේ අනෙකුත් සංවර්ධකයින් සමඟ සන්නිවේදනය කරන්න

හොඳින් සංවිධිත සංවර්ධන ක්‍රියාවලියක් තුළ, කණ්ඩායමේ සිටින සෑම කෙනෙකුම කුමක් කරන්නේද යන්න දනී. යථාර්ථය නම්, මෙය බොහෝ විට එසේ නොවේ, එබැවින් ඔබ ඔබේ කාර්යයේ කොටසක් ලෙස දත්ත සමුදා ව්‍යුහයේ වෙනස්කම් සකස් කරන්නේ නම්, මේ පිළිබඳව සමස්ත කණ්ඩායමට අතිරේකව දැනුම් දීම සුදුසුය. යමෙකු සමාන්තරව වෙනස්කම් සිදු කරන්නේ නම්, ඔබ ප්රවේශමෙන් සංවිධානය කළ යුතුය. ආරම්භයේදී පමණක් නොව, වැඩ නිම කිරීමෙන් පසු සගයන් සමඟ සන්නිවේදනය කිරීම වටී. වෙනස් කිරීම් සමඟ ඇති විය හැකි ගැටළු බොහොමයක් කේත සමාලෝචන අදියරේදී විසඳා ගත හැක.

7. ඔබ කරන දේ ගැන සිතන්න!

එය ඕනෑම තත්වයකට අදාළ වන ස්වයං-පැහැදිලි උපදෙස් ලෙස පෙනේ. කෙසේ වෙතත්, සංවර්ධකයා ඔහු කරන්නේ කුමක්ද සහ එය බලපාන්නේ කුමක්ද යන්න නැවත වරක් විශ්ලේෂණය කළේ නම් බොහෝ ගැටලු මඟහරවා ගත හැකිය. සංක්රමණයන් සමඟ වැඩ කිරීම සෑම විටම අමතර අවධානයක් සහ නිරවද්යතාවක් අවශ්ය වේ.

උගුල්

ඔබ ඉහත උපදෙස් අනුගමනය නොකරන්නේ නම් ඔබට වැටිය හැකි සාමාන්‍ය උගුල් දෙස අපි දැන් බලමු, සහ ඔබ හරියටම කළ යුත්තේ කුමක්ද?

තත්ත්වය 1: සංවර්ධකයින් දෙදෙනෙකු එකවර නව වෙනස් කිරීම් එකතු කිරීමට උත්සාහ කරයි

Liquibase භාවිතයෙන් පාදයට වෙඩි තැබීමෙන් වැළකී සිටින්නේ කෙසේද?
Vasya සහ Petya එකිනෙකා ගැන නොදැන, වෙනස් කිරීම් 4 අනුවාදයක් නිර්මාණය කිරීමට අවශ්ය වේ. ඔවුන් දත්ත සමුදා ව්‍යුහයේ වෙනස්කම් සිදු කර විවිධ වෙනස් කිරීම් ගොනු සමඟ ඇදීමේ ඉල්ලීමක් නිකුත් කළහ. පහත ක්‍රියාකාරී යාන්ත්‍රණය යෝජනා කෙරේ:

තීරණය කරන්නේ කෙසේද

  1. කෙසේ හෝ, සගයන් ඔවුන්ගේ වෙනස්කම් යා යුතු අනුපිළිවෙලට එකඟ විය යුතුය, උදාහරණයක් ලෙස, පෙටින් පළමුව යෙදිය යුතුය.
  2. යමෙක් දෙවැන්න තමන්ටම එකතු කර Vasyaගේ වෙනස්කම් 5 අනුවාදය සමඟ සලකුණු කළ යුතුය. මෙය Cherry Pick හෝ පිළිවෙලට ඒකාබද්ධ කිරීම හරහා කළ හැක.
  3. වෙනස්කම් වලින් පසුව, ඔබ විසින් ගන්නා ලද ක්රියාමාර්ගවල වලංගු භාවය අනිවාර්යයෙන්ම පරීක්ෂා කළ යුතුය.
    ඇත්ත වශයෙන්ම, Liquibase යාන්ත්‍රණ මඟින් ඔබට නිධිය තුළ 4 අනුවාදයේ වෙනස්කම් දෙකක් ඇති කිරීමට ඉඩ සලසයි, එබැවින් ඔබට සියල්ල එලෙසම තැබිය හැකිය. එනම්, ඔබට විවිධ නම් සහිත 4 වන අනුවාදයේ වෙනස්කම් දෙකක් ඇත. මෙම ප්‍රවේශය සමඟ, පසුව දත්ත සමුදා අනුවාදවල සැරිසැරීම ඉතා අපහසු වේ.

මීට අමතරව, හොබිට්ස්ගේ නිවස මෙන් Liquibase බොහෝ රහස් තබා ගනී. ඒවායින් එකක් වලංගුCheckSum යතුර වන අතර එය 1.7 අනුවාදයේ දර්ශනය වූ අතර දත්ත සමුදායේ ගබඩා කර ඇති දේ නොසලකා, නිශ්චිත වෙනස් කිරීම් සඳහා වලංගු හැෂ් අගයක් නියම කිරීමට ඔබට ඉඩ සලසයි. ලේඛනගත කිරීම https://www.liquibase.org/documentation/changeset.html පහත සඳහන් දේ පවසයි:

දත්ත සමුදායේ ගබඩා කර ඇති දේ නොසලකා, මෙම changeSet සඳහා වලංගු යැයි සැලකෙන චෙක්සම් එකක් එක් කරන්න. ඔබට changeSet වෙනස් කිරීමට අවශ්‍ය වූ විට සහ එය දැනටමත් ක්‍රියාත්මක කර ඇති දත්ත සමුදායන් මත දෝෂ ඇති කිරීමට අවශ්‍ය නැති විට ප්‍රධාන වශයෙන් භාවිතා වේ (නිර්දේශිත ක්‍රියා පටිපාටියක් නොවේ)

ඔව්, ඔව්, මෙම ක්රියා පටිපාටිය නිර්දේශ නොකරයි. නමුත් සමහර විට ශක්තිමත් සැහැල්ලු ඉන්ද්‍රජාලිකයෙකු අඳුරු ශිල්පීය ක්‍රම ද ප්‍රගුණ කරයි

තත්ත්වය 2: දත්ත මත රඳා පවතින සංක්‍රමණය

Liquibase භාවිතයෙන් පාදයට වෙඩි තැබීමෙන් වැළකී සිටින්නේ කෙසේද?

සජීවී සේවාදායකයන්ගෙන් දත්ත සමුදා උපස්ථ භාවිතා කිරීමට ඔබට හැකියාවක් නැතැයි උපකල්පනය කරමු. Petya වෙනස් කිරීමේ කට්ටලයක් නිර්මාණය කර, එය දේශීයව පරීක්ෂා කර, ඔහු නිවැරදි බවට පූර්ණ විශ්වාසයකින් යුතුව, සංවර්ධකයාට අදින්න ඉල්ලීමක් කළේය. යම් අවස්ථාවක දී, ව්‍යාපෘති ප්‍රධානියා පෙටියා එය පරීක්ෂා කර ඇත්ද යන්න පැහැදිලි කර, පසුව එය එකතු කළේය. නමුත් සංවර්ධන සේවාදායකයේ යෙදවීම අඩු විය.

ඇත්ත වශයෙන්ම, මෙය කළ හැකි අතර, කිසිවෙකු මෙයින් නිදහස් නොවේ. වගු ව්‍යුහයේ වෙනස් කිරීම් කෙසේ හෝ දත්ත සමුදායෙන් නිශ්චිත දත්ත සමඟ බැඳී ඇත්නම් මෙය සිදු වේ. පැහැදිලිවම, Petya ගේ දත්ත සමුදාය පුරවා ඇත්තේ පරීක්ෂණ දත්ත වලින් පමණක් නම්, එය සියලු ගැටළු අවස්ථා ආවරණය නොකරනු ඇත. උදාහරණයක් ලෙස, වගුවක් මකා දැමීමේදී, වෙනත් වගු වල විදේශ යතුර විසින් මකාදැමූ එකෙහි ඇති වාර්තා වලට අදාළ වාර්තා ඇති බව පෙනී යයි. නැතහොත් තීරු වර්ගයක් වෙනස් කිරීමේදී, දත්ත වලින් 100% ක් නව වර්ගයට පරිවර්තනය කළ නොහැකි බව පෙනේ.

තීරණය කරන්නේ කෙසේද

  • සංක්‍රමණය සමඟ එක් වරක් භාවිත කෙරෙන විශේෂ ස්ක්‍රිප්ට් ලියා දත්ත නිසි ආකෘතියට ගෙන එන්න. සංක්‍රමණ යෙදීමෙන් පසු නව ව්‍යුහයන් වෙත දත්ත මාරු කිරීමේ ගැටළුව විසඳීමට මෙය සාමාන්‍ය ක්‍රමයකි, නමුත් විශේෂ අවස්ථා වලදී සමාන දෙයක් මීට පෙර යෙදිය හැකිය. සජීවී සේවාදායකයන් මත දත්ත සංස්කරණය කිරීම අනතුරුදායක හා විනාශකාරී විය හැකි නිසා මෙම මාර්ගය, ඇත්ත වශයෙන්ම, සෑම විටම ලබා ගත නොහැක.
  • තවත් දුෂ්කර ක්රමයක් වන්නේ පවතින වෙනස්කම් සංස්කරණය කිරීමයි. දුෂ්කරතාවය නම්, එය දැනටමත් පවතින ආකෘතියේ යෙදී ඇති සියලුම දත්ත සමුදායන් ප්‍රතිසාධනය කිරීමට සිදුවනු ඇත. මුල සිටම දත්ත සමුදාය දේශීයව පෙරළීමට සමස්ත පසුපෙළ කණ්ඩායමට බල කෙරෙනු ඇත.
  • වඩාත්ම විශ්වීය ක්‍රමය නම්, දත්ත සමඟ ඇති ගැටළුව සංවර්ධකයාගේ පරිසරයට මාරු කිරීම, එම තත්වයම ප්‍රතිනිර්මාණය කිරීම සහ කැඩුණු එකට නව වෙනස් කිරීමක් එකතු කිරීම, එය ගැටළුව මඟහරවා ගැනීමයි.
    Liquibase භාවිතයෙන් පාදයට වෙඩි තැබීමෙන් වැළකී සිටින්නේ කෙසේද?

සාමාන්‍යයෙන්, දත්ත සමුදාය නිෂ්පාදන සේවාදායක දත්ත ගබඩාවට සංයුතියට සමාන වන තරමට, සංක්‍රමණ සමඟ ගැටලු දුරදිග යාමට ඇති ඉඩකඩ අඩුය. තවද, ඇත්ත වශයෙන්ම, ඔබ ගබඩාවට වෙනස්කම් යැවීමට පෙර, එය කිසිවක් බිඳී යනු ඇත්දැයි කිහිප වතාවක් සිතා බැලිය යුතුය.

තත්ත්වය 3. Liquibase නිෂ්පාදනයට ගිය පසු එය භාවිතා කිරීමට පටන් ගනී

ව්‍යාපෘතියට Liquibase ඇතුළත් කරන ලෙස කණ්ඩායම් ප්‍රධානියා Petya ගෙන් ඉල්ලා සිටියේ යැයි සිතමු, නමුත් ව්‍යාපෘතිය දැනටමත් නිෂ්පාදනය වෙමින් පවතින අතර පවතින දත්ත සමුදා ව්‍යුහයක් තිබේ.

ඒ අනුව, ගැටළුව වන්නේ ඕනෑම නව සේවාදායකයක් හෝ සංවර්ධක යන්ත්‍රයක් මත, මෙම වගු මුල සිටම ප්‍රතිනිර්මාණය කළ යුතු අතර, පවතින පරිසරය නව වෙනස්කම් පිළිගැනීමට සූදානම්ව ස්ථාවර තත්වයක පැවතිය යුතුය.

තීරණය කරන්නේ කෙසේද

ක්රම කිහිපයක් ද තිබේ:

  • පළමු සහ වඩාත්ම පැහැදිලි දෙය නම් නව පරිසරයක් ආරම්භ කිරීමේදී අතින් යෙදිය යුතු වෙනම ස්ක්‍රිප්ට් එකක් තිබීමයි.
  • දෙවැන්න එතරම් පැහැදිලි නැත, වෙනත් Liquibase සන්දර්භයක ඇති Liquibase සංක්‍රමණයක් ඇති අතර එය යොදන්න. ඔබට Liquibase සන්දර්භය ගැන වැඩිදුර කියවිය හැක: https://www.liquibase.org/documentation/contexts.html. සාමාන්යයෙන්, මෙය සාර්ථකව භාවිතා කළ හැකි රසවත් යාන්ත්රණයක්, උදාහරණයක් ලෙස, පරීක්ෂණ සඳහා.
  • තුන්වන මාර්ගය පියවර කිහිපයකින් සමන්විත වේ. පළමුව, පවතින වගු සඳහා සංක්‍රමණයක් සෑදිය යුතුය. එවිට එය කිසියම් පරිසරයකට යෙදිය යුතු අතර එමඟින් එහි හැෂ් එකතුව ලැබෙනු ඇත. මීලඟ පියවර වන්නේ අපගේ හිස් නොවන සේවාදායකයේ හිස් Liquibase වගු ආරම්භ කිරීමයි, සහ වෙනස් කිරීම් භාවිතා කිරීමේ ඉතිහාසය සහිත වගුවේ, දත්ත සමුදායේ දැනටමත් පවතින වෙනස්කම් සමඟ “යෙදුවා සේ” වෙනස්කම් පිළිබඳව ඔබට අතින් වාර්තාවක් තැබිය හැකිය. . මේ අනුව, පවතින සේවාදායකයක, ඉතිහාස ගණන් කිරීම 2 අනුවාදයෙන් ආරම්භ වන අතර, සියලු නව පරිසරයන් එක හා සමානව හැසිරෙනු ඇත.
    Liquibase භාවිතයෙන් පාදයට වෙඩි තැබීමෙන් වැළකී සිටින්නේ කෙසේද?

තත්ත්වය 4. සංක්‍රමණ විශාල වන අතර සම්පූර්ණ කිරීමට කාලය නොමැත

සේවා සංවර්ධනය ආරම්භයේ දී, රීතියක් ලෙස, Liquibase බාහිර පරායත්තතාවයක් ලෙස භාවිතා කරනු ලබන අතර, යෙදුම ආරම්භ වන විට සියලු සංක්රමණයන් සකසනු ලැබේ. කෙසේ වෙතත්, කාලයත් සමඟ, ඔබට පහත සඳහන් අවස්ථාවන් මත පැකිලීමට ඉඩ ඇත:

  • සංක්‍රමණ විශාල වන අතර සම්පූර්ණ වීමට බොහෝ කාලයක් ගතවේ.
  • බෙදා හරින ලද පරිසරවල සංක්‍රමණය අවශ්‍ය වේ, උදාහරණයක් ලෙස, දත්ත සමුදා සේවාදායක අවස්ථා කිහිපයක එකවර.
    මෙම අවස්ථාවෙහිදී, දිගු කාලයක් සඳහා සංක්‍රමණය යෙදීමෙන් යෙදුම ආරම්භ වන විට කල් ඉකුත්වීමක් සිදුවේ. මීට අමතරව, එක් එක් යෙදුම් අවස්ථාවට වෙන වෙනම සංක්‍රමණය යෙදීමෙන් විවිධ සේවාදායකයන් සමමුහුර්ත නොවීමකට හේතු විය හැක.

තීරණය කරන්නේ කෙසේද

එවැනි අවස්ථාවන්හිදී, ඔබේ ව්යාපෘතිය දැනටමත් විශාලයි, සමහරවිට වැඩිහිටියෙකු වුවද, Liquibase වෙනම බාහිර මෙවලමක් ලෙස ක්රියා කිරීමට පටන් ගනී. කාරණය වන්නේ Liquibase පුස්තකාලයක් ලෙස jar ගොනුවකට සම්පාදනය කර ඇති අතර ව්‍යාපෘතියක් තුළ හෝ ස්වාධීනව යැපීමක් ලෙස ක්‍රියා කළ හැකිය.

ස්වාධීන ප්‍රකාරයේදී, ඔබට ඔබේ CI/CD පරිසරයට හෝ ඔබේ පද්ධති පරිපාලකයන්ගේ සහ යෙදවීමේ විශේෂඥයන්ගේ ශක්තිමත් උරහිස් වෙත සංක්‍රමණයන් ක්‍රියාත්මක කිරීම අත්හැරිය හැක. මෙය සිදු කිරීම සඳහා ඔබට Liquibase විධාන රේඛාව අවශ්‍ය වේ https://www.liquibase.org/documentation/command_line.html. මෙම මාදිලියේදී, අවශ්‍ය සියලුම සංක්‍රමණයන් සිදු කිරීමෙන් පසු යෙදුම දියත් කිරීමට හැකි වේ.

නිගමනය

ඇත්ත වශයෙන්ම, දත්ත සමුදා සංක්රමණයන් සමඟ වැඩ කිරීමේදී තවත් බොහෝ අන්තරායන් ඇති විය හැකි අතර, ඒවායින් බොහොමයක් නිර්මාණාත්මක ප්රවේශයක් අවශ්ය වේ. ඔබ මෙවලම නිවැරදිව භාවිතා කරන්නේ නම්, මෙම අන්තරායන් බොහොමයක් වළක්වා ගත හැකි බව තේරුම් ගැනීම වැදගත්ය. විශේෂයෙන්, විවිධ ආකාරවලින් ලැයිස්තුගත කර ඇති සියලුම ගැටළු සමඟ කටයුතු කිරීමට මට සිදු වූ අතර, ඒවායින් සමහරක් මගේ වැරදිවල ප්රතිඵල විය. බොහෝ දුරට මෙය සිදුවන්නේ, ඇත්ත වශයෙන්ම, නොසැලකිලිමත්කම නිසා, නමුත් සමහර විට මෙවලම භාවිතා කිරීමට සාපරාධී නොහැකියාව හේතුවෙන්.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න