که چیرې بل پراختیا کونکي یو پل جوړ کړي او یو بدلون سیټ پلي کړي ، کوم چې وروسته به ترمیم شي ، نو هغه به خامخا تاسو ته د مهربان کلمې سره په یاد ولري کله چې هغه د غوښتنلیک پیل کولو پرمهال غلطي ترلاسه کړي. که چیرې د بدلون سیټ ایډیټ کول په یو ډول پراختیا کې لیک شي ، نو تاسو باید د هاټ فکسونو سلیپري سلیپ تعقیب کړئ. د ستونزې جوهر د هش سموم لخوا د بدلونونو تایید پورې اړه لري - د Liquibase اصلي میکانیزم. کله چې د changeset کوډ ایډیټ کړئ، د هش اندازه بدلیږي. د بدلونونو ایډیټ کول یوازې هغه وخت ممکن دي چې د معلوماتو له لاسه ورکولو پرته له سکریچ څخه ټول ډیټابیس ځای په ځای کول ممکن وي. په دې حالت کې، د SQL یا XML کوډ بیاکتنه کولی شي، برعکس، ژوند اسانه کړي او مهاجرتونه د لوستلو وړ کړي. یو مثال به یو حالت وي چیرې چې د غوښتنلیک په پیل کې، د سرچینې ډیټابیس سکیما په ټیم کې موافقه شوې وه.
4. که امکان ولري د ډیټابیس بیک اپ تصدیق کړئ
دلته، زه فکر کوم، هر څه روښانه دي. که ناڅاپه مهاجرت ناکام شو، هرڅه بیرته راستانه کیدی شي. Liquibase د بدلونونو بیرته راګرځولو لپاره وسیله لري، مګر د رول بیک سکریپټونه هم پخپله د پراختیا کونکي لخوا لیکل شوي، او دوی کولی شي د اصلي بدلونونو سکریپټونو په څیر د ورته احتمال سره ستونزې ولري. دا پدې مانا ده چې دا په هر حالت کې د بیک اپ سره خوندي لوبې کول ګټور دي.
5. که امکان ولري په پراختیا کې ثابت ډیټابیس بیک اپ وکاروئ
که دا د تړونونو او محرمیت سره مخالفت ونلري، په ډیټابیس کې هیڅ شخصي معلومات شتون نلري، او دا دومره وزن نلري لکه دوه لمرونه - مخکې له دې چې دا په ژوندی مهاجرت سرورونو کې وکاروي، تاسو کولی شئ وګورئ چې دا به د پراختیا کونکي ماشین کې څنګه کار کوي او محاسبه کړي. د مهاجرت په جریان کې د احتمالي ستونزو نږدې 100٪.
په حقیقت کې، دا ممکنه ده، او هیڅوک له دې څخه خوندي نه دي. دا پیښیږي که چیرې د میز جوړښت کې بدلونونه په یو ډول د ډیټابیس ځانګړي معلوماتو سره تړلي وي. په ښکاره ډول، که چیرې د پیټیا ډیټابیس یوازې د ازموینې ډیټا څخه ډک وي، نو دا ممکن د ټولو ستونزو قضیې پوښښ نکړي. د مثال په توګه، کله چې یو جدول ړنګول، دا معلومه شوه چې په نورو جدولونو کې د بهرني کیلي لخوا ریکارډونه شتون لري چې د حذف شوي ریکارډونو سره تړاو لري. یا کله چې د کالم ډول بدل کړئ، دا معلومه شوه چې د معلوماتو 100٪ نوي ډول ته نشي بدلیدلی.
څنګه پریکړه وکړو
ځانګړي سکریپټونه ولیکئ چې د مهاجرت سره یو ځل کارول کیږي او ډاټا په مناسب شکل کې راوړي. دا د مهاجرت پلي کولو وروسته نوي جوړښتونو ته د معلوماتو لیږدولو ستونزې حل کولو عمومي لاره ده ، مګر ورته یو څه دمخه پلي کیدی شي ، په ځانګړي قضیو کې. دا لاره، البته، تل شتون نلري، ځکه چې په ژوندی سرورونو کې د معلوماتو ایډیټ کول خطرناک او حتی ویجاړونکي کیدی شي.
بله ستونزمنه لاره د موجوده بدلونونو ترمیم کول دي. مشکل دا دی چې ټول ډیټابیسونه چیرې چې دا دمخه په خپل موجوده فارم کې پلي شوي باید بیرته وساتل شي. دا خورا ممکنه ده چې د پس منظر ټول ټیم به اړ شي چې په محلي توګه ډیټابیس له سکریچ څخه راوباسي.
او ترټولو نړیواله لاره د ډیټا سره ستونزه د پراختیا کونکي چاپیریال ته لیږدول دي ، ورته حالت رامینځته کول او مات شوي ته یو نوی بدلون اضافه کول ، کوم چې به ستونزه له مینځه ویسي.
په عموم کې، څومره چې ډیټابیس د تولید سرور ډیټابیس سره په جوړښت کې ورته وي، د مهاجرت سره ستونزې به لږ چانس وي. او البته، مخکې لدې چې تاسو ذخیره کولو ته بدلون واستوئ، تاسو باید څو ځله فکر وکړئ چې ایا دا به څه مات کړي.
وضعیت 3. Liquibase وروسته له دې چې تولید ته لاړ شي کارول پیل کیږي
فرض کړئ چې د ټیم مشر له پیټیا څخه وغوښتل چې په پروژه کې Liquibase شامل کړي، مګر پروژه لا دمخه په تولید کې ده او د ډیټابیس موجود جوړښت شتون لري.
په دې اساس، ستونزه دا ده چې په هر نوي سرور یا پراختیا کونکي ماشینونو کې، دا میزونه باید له سکریچ څخه جوړ شي، او موجوده چاپیریال باید په ثابت حالت کې پاتې شي، د نوي بدلونونو منلو ته چمتو وي.
څنګه پریکړه وکړو
څو لارې هم شته:
لومړی او خورا څرګند دی چې یو جلا سکریپټ ولري چې باید په لاسي ډول پلي شي کله چې د نوي چاپیریال پیل کول.
دوهم لږ څرګند دی ، د Liquibase مهاجرت ولرئ چې په بل Liquibase شرایطو کې دی ، او پلي یې کړئ. تاسو کولی شئ دلته د Liquibase شرایطو په اړه نور ولولئ: https://www.liquibase.org/documentation/contexts.html. په عموم کې، دا یو په زړه پورې میکانیزم دی چې په بریالیتوب سره کارول کیدی شي، د بیلګې په توګه، د ازموینې لپاره.
دریمه لاره د څو مرحلو څخه جوړه ده. لومړی، د موجوده میزونو لپاره باید مهاجرت رامنځته شي. بیا دا باید په یو څه چاپیریال کې پلي شي او پدې توګه د هغې د هش مقدار به ترلاسه شي. بل ګام زموږ په غیر خالي سرور کې د Liquibase خالي جدولونو پیل کول دي ، او د بدلون سیټونو کارولو تاریخ سره په جدول کې ، تاسو کولی شئ په لاسي ډول د "لکه څنګه چې پلي شوي" بدلون سیټ په ډیټابیس کې دمخه موجود بدلونونو سره ثبت کړئ. . په دې توګه، په موجوده سرور کې، د تاریخ شمیره به د 2 نسخه څخه پیل شي، او ټول نوي چاپیریال به ورته چلند وکړي.
وضعیت 4. مهاجرتونه ډیریږي او د بشپړولو لپاره وخت نلري