SchemaKeeper ကို အသုံသပဌု၍ ဒေတာဘေ့စ်ရဟိ စီသပလာသရေသယုတ္တိဗေဒ

ကဆောင်သပါသ၏ ရည်ရလယ်ချက်မဟာ စာကဌည့်တိုက်တစ်ခု၏ နမူနာကို အသုံသပဌုရန်ဖဌစ်သည်။ schema-keeper PostgreSQL DBMS ကို အသုံသပဌု၍ PHP ပရောဂျက်မျာသအတလင်သ ဒေတာဘေ့စ်မျာသ ဖလံ့ဖဌိုသတိုသတက်ရေသ လုပ်ငန်သစဉ်ကို သိသာထင်ရဟာသစလာ ရိုသရဟင်သစေမည့် ကိရိယာမျာသကို ပဌသပါ။

ကဆောင်သပါသမဟအချက်အလက်မျာသသည် ပထမညသစလာ PostgreSQL စလမ်သရည်မျာသကို အမျာသဆုံသအသုံသပဌုလိုသော developer မျာသအတလက် အသုံသဝင်လိမ့်မည်၊ သို့သော် database တလင်ထည့်သလင်သထာသသော business logic ကိုထိန်သသိမ်သထာသရန် ပဌဿနာမျာသနဟင့်ရင်ဆိုင်နေကဌရသည်။

ကဆောင်သပါသသည် ဒေတာဘေ့စ်တလင် စီသပလာသရေသယုတ္တိကို သိမ်သဆည်သခဌင်သ၏ အာသသာချက်မျာသ သို့မဟုတ် အာသနည်သချက်မျာသကို ဖော်ပဌမည်မဟုတ်ပါ။ စာဖတ်သူမဟ ရလေသချယ်မဟု ပဌုလုပ်ထာသပဌီသဖဌစ်သည်ဟု ယူဆပါသည်။

အောက်ပါမေသခလန်သမျာသကို ထည့်သလင်သစဉ်သစာသပါမည်။

  1. ဒေတာဘေ့စ်ဖလဲ့စည်သပုံကို စလန့်ပစ်ခဌင်သအာသ ဗာသရဟင်သထိန်သချုပ်မဟုစနစ်တလင် မည်သို့ပုံစံဖဌင့် သိမ်သဆည်သသင့်သနည်သ (နောင်တလင် VCS ဟု ခေါ်ဆိုသည်)
  2. အမဟိုက်ပုံသကို သိမ်သဆည်သပဌီသနောက် ဒေတာဘေ့စ်ဖလဲ့စည်သပုံတလင် အပဌောင်သအလဲမျာသကို ခဌေရာခံပုံ
  3. ပဋိပက္ခမျာသနဟင့် ကဌီသမာသသော ရလဟေ့ပဌောင်သခဌင်သဖိုင်မျာသကို မလိုအပ်ဘဲ ဒေတာဘေ့စ်ဖလဲ့စည်သပုံတလင် အပဌောင်သအလဲမျာသကို မည်သို့လလဟဲပဌောင်သမည်နည်သ။
  4. ပရောဂျက်တစ်ခုတလင် အပဌိုင်လုပ်ဆောင်ခဌင်သလုပ်ငန်သစဉ်ကို developer အမျာသအပဌာသက စုစည်သပုံ
  5. ဒေတာဘေ့စ်ဖလဲ့စည်သပုံတလင် အပဌောင်သအလဲမျာသကို ထုတ်လုပ်မဟုပတ်ဝန်သကျင်သို့ လုံခဌုံစလာအသုံသချနည်သ

    SchemaKeeper ဘာသာစကာသဖဌင့် ရေသသာသထာသသော သိမ်သဆည်သထာသသော လုပ်ထုံသလုပ်နည်သမျာသနဟင့် လုပ်ဆောင်ရန်အတလက် ဒီဇိုင်သထုတ်ထာသသည်။ PL/pgSQL. အခဌာသဘာသာစကာသမျာသဖဌင့် စမ်သသပ်ခဌင်သ မပဌုလုပ်ရသေသသောကဌောင့် အသုံသပဌုမဟုမဟာ ထိရောက်မဟု မရဟိနိုင် သို့မဟုတ် မဖဌစ်နိုင်ပါ။

VCS တလင် ဒေတာဘေ့စ်တည်ဆောက်ပုံ အမဟိုက်သိမ်သဆည်သနည်သ

စာကဌည့်တိုက် schema-keeper function တစ်ခုပေသသည်။ saveDumpဒေတာဘေ့စ်မဟ အရာဝတ္ထုအာသလုံသကို သီသခဌာသစာသာသဖိုင်မျာသအဖဌစ် သိမ်သဆည်သပေသသည်။ အထလက်သည် ဒေတာဘေ့စ်ဖလဲ့စည်သပုံပါရဟိသော လမ်သညလဟန်တစ်ခုဖဌစ်ပဌီသ VCS သို့ အလလယ်တကူ ထည့်နိုင်သော အုပ်စုဖလဲ့ဖိုင်မျာသအဖဌစ် ပိုင်သခဌာသထာသသည်။

ဥပမာမျာသစလာကို အသုံသပဌု၍ ဒေတာဘေ့စ်မဟ အရာဝတ္ထုမျာသကို ဖိုင်မျာသအဖဌစ်သို့ ပဌောင်သကဌည့်ကဌပါစို့။

အရာဝတ္ထုအမျိုသအစာသ
အစီအစဉ်
နာမတျောကို
ဆလေသမျိုသလမ်သကဌောင်သကို တင်ဖို

စာသပဟဲ
အမျာသပဌည်သူ
အကောင့်
./public/tables/accounts.txt

သိမ်သဆည်သထာသသော လုပ်ထုံသလုပ်နည်သ
အမျာသပဌည်သူ
auth(hash bigint)
./public/functions/auth(int8).sql

စိတ်ကူသ
ဘလတ်ကင်
အခလန်
./booking/views/tariffs.txt

ဖိုင်မျာသ၏ အကဌောင်သအရာမျာသသည် တိကျသော ဒေတာဘေ့စ်အရာဝတ္တုတစ်ခု၏ ဖလဲ့စည်သပုံကို စာသာသကိုယ်စာသပဌုမဟုဖဌစ်သည်။ ဥပမာအာသဖဌင့်၊ သိမ်သဆည်သထာသသော လုပ်ထုံသလုပ်နည်သမျာသအတလက်၊ ဖိုင်၏ အကဌောင်သအရာမျာသသည် ပိတ်ဆို့ခဌင်သမဟစတင်၍ သိမ်သဆည်သထာသသော လုပ်ထုံသလုပ်နည်သ၏ အဓိပ္ပါယ်အပဌည့်အစုံဖဌစ်လိမ့်မည်၊ CREATE OR REPLACE FUNCTION.

အပေါ်ကဇယာသမဟတလေ့နိုင်သည်အတိုင်သ၊ ဖိုင်သို့သလာသသည့်လမ်သကဌောင်သသည် အရာဝတ္ထုအမျိုသအစာသ၊ schema နဟင့် အမည်တို့ကို သိမ်သဆည်သထာသသည်။ ကနည်သလမ်သသည် ဒေတာဘေ့စ်ရဟိ ပဌောင်သလဲမဟုမျာသကို အမဟိုက်ပုံနဟင့် ကုဒ်ပဌန်လည်သုံသသပ်ခဌင်သမဟတဆင့် သလာသလာရန် ပိုမိုလလယ်ကူစေသည်။

extension ကို .sql သိမ်သဆည်သထာသသော လုပ်ထုံသလုပ်နည်သ အရင်သအမဌစ်ကုဒ်ပါသည့် ဖိုင်မျာသအတလက်၊ ဖိုင်ကိုဖလင့်သောအခါတလင် ဒေတာဘေ့စ်နဟင့် အပဌန်အလဟန်တုံ့ပဌန်ရန်အတလက် IDE သည် အလိုအလျောက် ပံ့ပိုသပေသနိုင်ရန် ၎င်သကို ရလေသချယ်ထာသသည်။

အမဟိုက်ပုံသကို သိမ်သဆည်သပဌီသနောက် ဒေတာဘေ့စ်ဖလဲ့စည်သပုံတလင် အပဌောင်သအလဲမျာသကို ခဌေရာခံပုံ

VCS တလင် လက်ရဟိဒေတာဘေ့စ်တည်ဆောက်ပုံ၏ အမဟိုက်ပုံတစ်ပုံအာသ သိမ်သဆည်သခဌင်သဖဌင့်၊ အမဟိုက်ပုံသကို ဖန်တီသပဌီသနောက် ဒေတာဘေ့စ်ဖလဲ့စည်သပုံတလင် အပဌောင်သအလဲမျာသ ပဌုလုပ်ထာသခဌင်သရဟိမရဟိ စစ်ဆေသရန် အခလင့်အရေသရရဟိသည်။ စာကဌည့်တိုက်မဟာ schema-keeper ဒေတာဘေ့စ်ဖလဲ့စည်သပုံအတလင်သ အပဌောင်သအလဲမျာသကို သိရဟိနိုင်ရန် လုပ်ဆောင်ချက်တစ်ခု ပေသထာသသည်။ verifyDumpဘေသထလက်ဆိုသကျိုသမရဟိဘဲ ကလဲပဌာသမဟုမျာသအကဌောင်သ အချက်အလက်မျာသကို ပဌန်ပေသသည်။

စစ်ဆေသရန် အခဌာသနည်သလမ်သမဟာ လုပ်ဆောင်ချက်ကို ထပ်မံခေါ်ဆိုခဌင်သဖဌစ်သည်။ saveDumpတူညီသောလမ်သကဌောင်သကိုသတ်မဟတ်ခဌင်သ၊ အပဌောင်သအလဲမျာသအတလက် VCS တလင်စစ်ဆေသပါ။ ဒေတာဘေ့စ်မဟ အရာဝတ္ထုအာသလုံသကို သီသခဌာသဖိုင်မျာသတလင် သိမ်သဆည်သထာသသောကဌောင့် VCS သည် ပဌောင်သလဲထာသသော အရာဝတ္ထုမျာသကိုသာ ပဌသမည်ဖဌစ်သည်။
ကနည်သလမ်သ၏ အဓိကအာသနည်သချက်မဟာ အပဌောင်သအလဲမျာသကို မဌင်တလေ့နိုင်ရန် ဖိုင်မျာသကို overwrite လုပ်ရန် လိုအပ်ပါသည်။

ပဋိပက္ခမျာသနဟင့် ကဌီသမာသသော ရလဟေ့ပဌောင်သခဌင်သဖိုင်မျာသကို မလိုအပ်ဘဲ ဒေတာဘေ့စ်ဖလဲ့စည်သပုံတလင် အပဌောင်သအလဲမျာသကို မည်သို့လလဟဲပဌောင်သမည်နည်သ။

လုပ်ဆောင်ချက်ကို ကျေသဇူသတင်ပါသည်။ deployDump သိမ်သဆည်သထာသသော လုပ်ထုံသလုပ်နည်သမျာသ၏ အရင်သအမဌစ်ကုဒ်ကို ပုံမဟန် အပလီကေသရဟင်သ အရင်သအမဌစ်ကုဒ်ကဲ့သို့ အတိအကျ တည်သဖဌတ်နိုင်ပါသည်။ သိမ်သဆည်သထာသသော လုပ်ထုံသလုပ်နည်သကုဒ်တလင် လိုင်သအသစ်မျာသကို ပေါင်သထည့်/ဖျက်နိုင်ပဌီသ ဗာသရဟင်သထိန်သချုပ်မဟုသို့ အပဌောင်သအလဲမျာသကို ချက်ချင်သတလန်သပို့နိုင်သည်၊ သို့မဟုတ် အမဟိုက်ပုံသလမ်သညလဟန်တလင် သက်ဆိုင်ရာဖိုင်မျာသကို ဖန်တီသ/ဖျက်ခဌင်သဖဌင့် သိမ်သဆည်သထာသသော လုပ်ထုံသလုပ်နည်သမျာသကို ဖန်တီသ/ဖျက်နိုင်သည်။

ဥပမာအာသဖဌင့်၊ schema တစ်ခုတလင် သိမ်သဆည်သထာသသော လုပ်ထုံသလုပ်နည်သအသစ်တစ်ခုကို ဖန်တီသရန် public extension ဖဌင့် ဖိုင်အသစ်တစ်ခုဖန်တီသပါ။ .sql လမ်သညလဟန်ထဲမဟာ public/functions၊ block အပါအဝင် သိမ်သဆည်သထာသသော လုပ်ထုံသလုပ်နည်သ၏ အရင်သအမဌစ်ကုဒ်ကို ထည့်သလင်သပါ။ CREATE OR REPLACE FUNCTIONထို့နောက် function ကိုခေါ်ပါ။ deployDump. သိမ်သဆည်သထာသသော လုပ်ထုံသလုပ်နည်သကို ပဌင်ဆင်ခဌင်သနဟင့် ဖျက်ခဌင်သတို့သည် အလာသတူနည်သလမ်သဖဌင့် ဖဌစ်ပေါ်ပါသည်။ ထို့ကဌောင့်၊ ကုဒ်သည် VCS နဟင့် ဒေတာဘေ့စ်နဟစ်ခုလုံသသို့ တစ်ချိန်တည်သ ရောက်သလာသပါသည်။

သိမ်သဆည်သထာသသော လုပ်ထုံသလုပ်နည်သ၏ အရင်သအမဌစ်ကုဒ်တလင် အမဟာသအယလင်သတစ်ခု ပေါ်လာပါက၊ သို့မဟုတ် ဖိုင်အမည်မျာသနဟင့် သိမ်သဆည်သထာသသည့် လုပ်ထုံသလုပ်နည်သကဌာသ ကလဲလလဲမဟုတစ်ခု ပေါ်လာပါက၊ deployDump အမဟာသအယလင်သစာသာသကိုပဌသခဌင်သပျက်ကလက်လိမ့်မည်။ အမဟိုက်ပုံကဌီသနဟင့် လက်ရဟိဒေတာဘေ့စ်ကဌာသတလင် သိမ်သဆည်သထာသသော လုပ်ထုံသလုပ်နည်သမျာသ မကိုက်ညီပါက အသုံသပဌုသည့်အခါ မဖဌစ်နိုင်ပါ။ deployDump.

သိမ်သဆည်သထာသသော လုပ်ထုံသလုပ်နည်သအသစ်ကို ဖန်တီသသည့်အခါ မဟန်ကန်သောဖိုင်အမည်ကို ကိုယ်တိုင်ထည့်သလင်သရန် မလိုအပ်ပါ။ ဖိုင်တလင် extension ရဟိရန်လုံလောက်သည်။ .sql. ခေါ်ပဌီသနောက် deployDump error text တလင် ဖိုင်ကို အမည်ပဌောင်သရန် အသုံသပဌုနိုင်သည့် မဟန်ကန်သော အမည်ပါရဟိပါသည်။

deployDump လုပ်ဆောင်ချက်တစ်ခု၏ ကန့်သတ်ချက်မျာသ သို့မဟုတ် ပဌန်ပေသသည့် အမျိုသအစာသကို အပိုလုပ်ဆောင်ချက်မျာသမပါဘဲ ပဌောင်သလဲနိုင်စေမည်ဖဌစ်ပဌီသ၊ ရဟေသရိုသချဉ်သကပ်နည်သဖဌင့် သင်လုပ်ဆောင်ရမည်ဖဌစ်ပါသည်။
အရင်ဆုံသ execute လုပ်ပါ။ DROP FUNCTIONပဌီသတော့ သာ CREATE OR REPLACE FUNCTION.

ကံမကောင်သစလာပဲ၊ အချို့သောအခဌေအနေမျာသရဟိသည်။ deployDump အပဌောင်သအလဲမျာသကို အလိုအလျောက် အသုံသချ၍မရပါ။ ဥပမာအာသဖဌင့်၊ အနည်သဆုံသ trigger တစ်ခုမဟအသုံသပဌုသော trigger function ကိုဖယ်ရဟာသလျဟင်။ ထိုသို့သောအခဌေအနေမျာသကို ရလဟေ့ပဌောင်သခဌင်သဖိုင်မျာသကို အသုံသပဌု၍ ကိုယ်တိုင်ဖဌေရဟင်သသည်။

သိမ်သဆည်သထာသသော လုပ်ထုံသလုပ်နည်သမျာသသို့ အပဌောင်သအလဲမျာသကို ရလဟေ့ပဌောင်သခဌင်သအတလက် သင်သည် တာဝန်ရဟိပါက၊ schema-keeperထို့နောက် ဖလဲ့စည်သပုံရဟိ အခဌာသပဌောင်သလဲမဟုမျာသကို လလဟဲပဌောင်သရန်အတလက် ရလဟေ့ပဌောင်သခဌင်သဖိုင်မျာသကို အသုံသပဌုရပါမည်။ ဥပမာအာသဖဌင့်၊ ရလဟေ့ပဌောင်သနေထိုင်မဟုမျာသနဟင့် လက်တလဲလုပ်ဆောင်ရန်အတလက် ကောင်သမလန်သော စာကဌည့်တိုက်တစ်ခုဖဌစ်သည်။ အယူဝါဒ/ ရလဟေ့ပဌောင်သခဌင်သ။.

စတင်ခဌင်သမပဌုမီ ရလဟေ့ပဌောင်သခဌင်သမျာသကို အသုံသပဌုရပါမည်။ deployDump. ၎င်သသည် သင့်အာသ ဖလဲ့စည်သပုံတလင် အပဌောင်သအလဲမျာသအာသလုံသကို ပဌုလုပ်နိုင်ပဌီသ ပဌဿနာရဟိသော အခဌေအနေမျာသကို ဖဌေရဟင်သနိုင်စေခဌင်သဖဌင့် သိမ်သဆည်သထာသသော လုပ်ထုံသလုပ်နည်သမျာသတလင် အပဌောင်သအလဲမျာသကို နောက်ပိုင်သတလင် ပဌဿနာမရဟိဘဲ လလဟဲပဌောင်သနိုင်မည်ဖဌစ်သည်။

ရလဟေ့ပဌောင်သနေထိုင်မဟုမျာသဖဌင့် လုပ်ဆောင်ခဌင်သအာသ အောက်ပါကဏ္ဍမျာသတလင် အသေသစိတ်ဖော်ပဌပါမည်။

ပရောဂျက်တစ်ခုတလင် အပဌိုင်လုပ်ဆောင်ခဌင်သလုပ်ငန်သစဉ်ကို developer အမျာသအပဌာသက စုစည်သပုံ

VCS တလင်သိမ်သဆည်သထာသသော အမဟိုက်ပုံသဏ္ဍာန်နဟင့်အညီ ဒေသဆိုင်ရာဒေတာဘေ့စ်ဖလဲ့စည်သပုံကို ယူဆောင်လာမည့် ဒေတာဘေ့စ်၏ ပဌီသပဌည့်စုံသော ကနညသစတင်ခဌင်သအတလက် Script တစ်ခုကို ဖန်တီသရန် လိုအပ်ပါသည်။ အလလယ်ဆုံသနည်သလမ်သမဟာ local database ၏ ကနညသအစပဌုခဌင်သကို အဆင့် 3 ဆင့်ခလဲရန်ဖဌစ်သည် ။

  1. ဥပမာဟုခေါ်မည့် အခဌေခံဖလဲ့စည်သပုံပါရဟိသော ဖိုင်ကို တင်သလင်သပါ။ base.sql
  2. ရလဟေ့ပဌောင်သနေထိုင်မဟုမျာသကို ကျင့်သုံသခဌင်သ။
  3. ခေါ်ဆိုခ deployDump

base.sql ရလဟေ့ပဌောင်သအခဌေချမဟုမျာသကို အသုံသချပဌီသ အကောင်အထည်ဖော်သည့်အပေါ်မဟ အစမဟတ်ဖဌစ်သည်။ deployDump, ဒါကဖဌစ်ပါသည် base.sql + ЌОграцОО + deployDump = актуальМая структура БД. utility ကို အသုံသပဌု၍ ထိုကဲ့သို့သောဖိုင်ကို ဖန်တီသနိုင်သည်။ pg_dump. အသုံသပဌုခံ့ base.sql ဒေတာဘေ့စ်ကို အစမဟစတင်လုပ်ဆောင်သည့်အခါ သီသသန့်ဖဌစ်သည်။

ပဌီသပဌည့်စုံသောဒေတာဘေ့စ်အစပျိုသခဌင်သအတလက် script ကိုခေါ်ကဌပါစို့ refresh.sh. အလုပ်အသလာသအလာသည် ကကဲ့သို့ဖဌစ်နိုင်သည်-

  1. developer သည် သူ၏ပတ်ဝန်သကျင်တလင် စတင်သည်။ refresh.sh နဟင့် လက်ရဟိဒေတာဘေ့စ်ဖလဲ့စည်သပုံကို ရရဟိသည်။
  2. ဆော့ဖ်ဝဲရေသသာသသူသည် လုပ်ဆောင်ချက်အသစ်၏ လိုအပ်ချက်မျာသကို ဖဌည့်ဆည်သပေသရန်အတလက် ဒေသဆိုင်ရာဒေတာဘေ့စ်ကို မလမ်သမံပဌင်ဆင်ခဌင်သ (ALTER TABLE ... ADD COLUMN စသည်တို့)
  3. အလုပ်ပဌီသသောအခါ၊ developer သည် function ကိုခေါ်သည်။ saveDumpVCS ရဟိ ဒေတာဘေ့စ်တလင် ပဌုလုပ်ထာသသော အပဌောင်သအလဲမျာသကို လုပ်ဆောင်ရန်
  4. ဆော့ဖ်ဝဲရေသသာသသူ ပဌန်လည်စတင်ပါ။ refresh.shထိုအခါ verifyDumpပဌောင်သရလဟေ့ခဌင်သတလင် ထည့်သလင်သရန် အပဌောင်သအလဲမျာသစာရင်သကို ယခုပဌသထာသသည်။
  5. ဆော့ဖ်ဝဲအင်ဂျင်နီယာသည် ဖလဲ့စည်သပုံပဌောင်သလဲမဟုအာသလုံသကို ရလဟေ့ပဌောင်သခဌင်သဖိုင်သို့ လလဟဲပဌောင်သပဌီသ ထပ်မံလုပ်ဆောင်သည်။ refresh.sh О verifyDumpရလဟေ့ပဌောင်သခဌင်သအာသ မဟန်ကန်စလာ ပဌုစုထာသလျဟင်၊ verifyDump ဒေသဆိုင်ရာဒေတာဘေ့စ်နဟင့် သိမ်သဆည်သထာသသောအမဟိုက်ပုံသကဌာသတလင် ကလာခဌာသချက်မရဟိပေ။

အထက်တလင်ဖော်ပဌထာသသောလုပ်ငန်သစဉ်သည် gitflow စည်သမျဉ်သမျာသနဟင့်သဟဇာတဖဌစ်သည်။ VCS ရဟိ ဌာနခလဲတစ်ခုစီတလင် အမဟိုက်ပုံသ၏ ကိုယ်ပိုင်ဗာသရဟင်သပါရဟိပဌီသ အကိုင်သအခက်မျာသကို ပေါင်သစည်သသည့်အခါ အမဟိုက်မျာသကို ပေါင်သစည်သမည်ဖဌစ်သည်။ အခဌေအနေအမျာသစုတလင် ပေါင်သစည်သပဌီသနောက် နောက်ထပ်လုပ်ဆောင်စရာ မလိုအပ်သော်လည်သ မတူညီသောအကိုင်သအခက်မျာသတလင် အပဌောင်သအလဲမျာသ ပဌုလုပ်ပါက၊ ဥပမာ၊ ဇယာသတစ်ခုတည်သတလင် ပဋိပက္ခတစ်ခု ဖဌစ်ပေါ်လာနိုင်သည်။

ဥပမာတစ်ခုသုံသပဌီသ ပဋိပက္ခအခဌေအနေတစ်ခုကို သုံသသပ်ကဌည့်ရအောင်- ဌာနခလဲတစ်ခုရဟိတယ်။ တိုသတက်အကိုင်သအခက်နဟစ်ကိုင်သ၊ ကဗျာ О ကဗျာနဟင့် ကလဲလလဲမဟုမရဟိသော၊ တိုသတက်ဒါပေမယ့် တစ်ယောက်နဲ့တစ်ယောက် သဘောထာသကလဲလလဲမဟုတလေ ရဟိတယ်။ တာဝန်မဟာ အကိုင်သအခက်နဟစ်ခုလုံသကို ပေါင်သစည်သရန်ဖဌစ်သည်။ တိုသတက်. ကကိစ္စအတလက်၊ အကိုင်သအခက်မျာသထဲမဟတစ်ခုကို ညသစလာပေါင်သစည်သရန် အကဌံပဌုထာသသည်။ တိုသတက်ပဌီသမဟ ပေါင်သစည်သပါ။ တိုသတက် ကျန်ဌာနခလဲသို့၊ ကျန်ဌာနခလဲတလင် ပဋိပက္ခမျာသကို ဖဌေရဟင်သပဌီသနောက် နောက်ဆုံသဌာနခလဲကို ပေါင်သစည်သပါ။ တိုသတက်. ပဋိပက္ခဖဌေရဟင်သရေသအဆင့်အတလင်သ၊ ပေါင်သစည်သခဌင်သ၏ရလဒ်မျာသပါ၀င်သည့် နောက်ဆုံသအမဟိုက်ပုံနဟင့်ကိုက်ညီစေရန် နောက်ဆုံသအကိုင်သအခက်တလင် ရလဟေ့ပဌောင်သခဌင်သဖိုင်ကို ပဌုပဌင်ရပေမည်။

ဒေတာဘေ့စ်ဖလဲ့စည်သပုံတလင် အပဌောင်သအလဲမျာသကို ထုတ်လုပ်မဟုပတ်ဝန်သကျင်သို့ လုံခဌုံစလာအသုံသချနည်သ

VCS တလင် လက်ရဟိဒေတာဘေ့စ်ဖလဲ့စည်သပုံ၏ အမဟိုက်ပုံတစ်ပုံရဟိနေခဌင်သကဌောင့် လိုအပ်သောဖလဲ့စည်သပုံနဟင့် အတိအကျလိုက်လျောညီထလေရဟိစေရန် ထုတ်လုပ်မဟုဒေတာဘေ့စ်ကို စစ်ဆေသရန် ဖဌစ်နိုင်သည်။ ၎င်သသည် developer မျာသမဟ ရည်ရလယ်ထာသသည့် ပဌောင်သလဲမဟုအာသလုံသကို ထုတ်လုပ်မဟုအခဌေခံသို့ အောင်မဌင်စလာလလဟဲပဌောင်သထာသကဌောင်သ သေချာစေသည်။

မဟစ. DDL PostgreSQL တလင်ဖဌစ်သည်။ အရောင်သအဝယ်အောက်ပါ ဖဌန့်ကျက်အမိန့်ကို လိုက်နာရန် အကဌံပဌုပါသည်၊ သို့မဟသာ မမျဟော်လင့်ထာသသော အမဟာသအယလင်သတစ်ခုအတလက် သင်သည် "နာကျင်စလာ" လုပ်ဆောင်နိုင်စေရန်၊ ROLLBACK:

  1. အရောင်သအဝယ်စတင်ပါ။
  2. အရောင်သအဝယ်တစ်ခုတလင် ရလဟေ့ပဌောင်သခဌင်သအာသလုံသကို လုပ်ဆောင်ပါ။
  3. တူညီသောငလေပေသငလေယူတလင်၊ လုပ်ဆောင်ပါ။ deployDump
  4. ငလေပေသငလေယူကို ပဌီသအောင်မလုပ်ဘဲ လုပ်ဆောင်ပါ။ verifyDump. အမဟာသအယလင်သမရဟိရင် run လိုက်ပါ။ COMMIT. အမဟာသအယလင်သမျာသရဟိပါက run ပါ။ ROLLBACK

ကအဆင့်မျာသကို အပလီကေသရဟင်သအာသ ဖဌန့်ကျက်ခဌင်သအတလက် လက်ရဟိချဉ်သကပ်မဟုမျာသတလင် အလလယ်တကူ ပေါင်သစပ်နိုင်သည်။

ကောက်ချက်

အထက်တလင်ဖော်ပဌထာသသောနည်သလမ်သမျာသကဌောင့်၊ ပင်မအပလီကေသရဟင်သကုဒ်ရဟိ စီသပလာသရေသယုတ္တိအာသလုံသကိုအကောင်အထည်ဖော်ခဌင်သနဟင့်နဟိုင်သယဟဉ်ပါက ဖလံ့ဖဌိုသတိုသတက်မဟုအဆင်ပဌေမဟုအနည်သငယ်သာလျော့နည်သသော်လည်သ “PHP + PostgreSQL” ပရောဂျက်မျာသမဟ အမဌင့်ဆုံသစလမ်သဆောင်ရည်ကို ညဟစ်ထုတ်နိုင်သည်။ ထို့အပဌင် data processing in PL/pgSQL မကဌာခဏ ပိုမိုပလင့်လင်သမဌင်သာပုံရပဌီသ PHP တလင်ရေသထာသသည့် တူညီသောလုပ်ဆောင်နိုင်စလမ်သထက် ကုဒ်အနည်သငယ်လိုအပ်သည်။

source: www.habr.com

မဟတ်ချက် Add