เราได้พูดคุยเกี่ยวกับเทคนิคการปรับใช้ฐานข้อมูลในวันนี้เนื่องจากมีความล้มเหลวสองสามครั้งในกระบวนการปัจจุบันของเราและได้เห็นสถานการณ์ที่เราต้องการย้อนกลับการปรับใช้ แต่แอปพลิเคชันรุ่นเก่าไม่เคยทดสอบกับเวอร์ชันใหม่ของ ฐานข้อมูล
ในอีกด้านหนึ่งมีการปรับใช้รูปแบบการโยกย้ายที่คุณมีคำสั่งแบบขึ้น - ลงและการเรียนการสอนแบบลง - ลง (ไม่ว่าจะเขียนใน SQL หรือในภาษาแอปพลิเคชันของคุณ) และแอปของคุณรู้รุ่นที่มันต้องการ
สิ่งเหล่านี้เรียบง่ายและเราจะไม่ย้อนกลับบ่อยนักพัฒนามีความกระตือรือร้น อย่างไรก็ตามมีความเสี่ยงเมื่อคุณเพิ่มเขตข้อมูล / ตารางและเขตข้อมูลนั้นจะถูกเติมก่อนที่คุณจะย้อนกลับ หรือแย่กว่านั้นคือคุณทิ้งข้อมูลที่เกี่ยวข้องกับเวอร์ชันก่อนหน้า
ในทางกลับกันเราสามารถพิจารณาการอัพเกรดการย้อนกลับการใช้วิธีการย้อนกลับซึ่งการย้อนกลับไม่รุนแรงเหมือนการย้ายข้อมูล ตัวอย่างเช่นการอัปเกรดอาจเพิ่มฟิลด์ที่ไม่สามารถยกเลิกได้ ย้อนกลับทำให้เป็นโมฆะเพื่อให้แอปเก่าไม่สนใจ rollforward จะเติมฟิลด์ว่างและทำให้มันไม่สามารถลบล้างได้อีก
สิ่งนี้จะเก็บข้อมูล แต่มีความซับซ้อนทั้งในการเขียนโค้ดและเพื่อทดสอบ (น่าเศร้าที่การทดสอบการรวมอัตโนมัติของเรานั้นไม่ค่อยมีอยู่จริงและในขณะที่เรากำลังแก้ไขนั้นเรามีปัญหาในขณะเดียวกัน)
มีวิธีที่ปลอดภัยในการลดปัญหาเหล่านี้หรือไม่? มีตัวเลือกอื่น ๆ ที่ฉันควรพิจารณาหรือไม่ คุณเคยมีประสบการณ์ที่ไม่ดีที่คุณต้องการแบ่งปันซึ่งสามารถช่วยฉันเจ็บปวดในภายหลัง