RE:NODE
ჰოსტინგი

ბაზები6 წუთის საკითხავი

სქემის მიგრაციები შეფერხების გარეშე

დამატება უსაფრთხოა, მოშორება უსაფრთხოა მოგვიანებით, გადარქმევა კი სწორედ ისაა, რაც ამტვრევს. Expand-and-contract ნიმუში იმ თანმიმდევრობით, რომელიც მართლა მუშაობს.


ნებისმიერი დეპლოის დროს არსებობს ფანჯარა, სადაც ძველი და ახალი კოდი ერთ ბაზაზე მუშაობს. ყოველი უსაფრთხო მიგრაცია ამ ფაქტიდან გამომდინარეობს, ყოველი არაუსაფრთხო კი მას უგულებელყოფს.

Expand, migrate, contract

  1. Expand: დაამატე ახალი სვეტი ან ცხრილი. ძველი კოდი მას უგულებელყოფს; ახალს გამოყენება შეუძლია.
  2. დააყენე კოდი, რომელიც ძველ და ახალ ფორმაში ერთდროულად წერს.
  3. შეავსე არსებული ჩანაწერები პარტიებად, სანამ ყველაფერი მუშაობს.
  4. დააყენე კოდი, რომელიც მხოლოდ ახალ ფორმას კითხულობს.
  5. Contract: წაშალე ძველი სვეტი მოგვიანებით რელიზში, როცა მას აღარაფერი მიმართავს.

ოპერაციები, რომლებზეც ფრთხილად უნდა იყო

  • სვეტის გადარქმევა: არასდროს ერთ ნაბიჯად. ეს არის დამატება, შევსება, გადართვა, წაშლა.
  • NOT NULL სვეტის დამატება ნაგულისხმევი მნიშვნელობის გარეშე, რაც ცხრილს ხელახლა წერს.
  • დიდ ცხრილზე ინდექსის შექმნა concurrent პარამეტრის გარეშე, რაც ჩაწერებს ბლოკავს.
ხუთი მოსაწყენი დეპლოი უფრო იაფია, ვიდრე ერთი საინტერესო.