ระบบฐานข้อมูล "ยอดนิยม" (MySQL, Postgres ... ) ส่วนใหญ่จะจัดการกับการเปลี่ยนแปลงตารางบนฐานข้อมูลการผลิตจริง (เช่นการเพิ่มการลบหรือการเปลี่ยนประเภทของโคลลัส) ได้อย่างไร
ฉันรู้ว่าวิธีที่ถูกต้องคือการสำรองข้อมูลทุกอย่างกำหนดเวลาหยุดทำงานและทำการเปลี่ยนแปลง
แต่ ... ระบบฐานข้อมูลปัจจุบันสนับสนุนการทำสิ่งเหล่านี้ "ออนไลน์" โดยไม่หยุดอะไรหรือไม่? (อาจเป็นเพียงการชะลอการสืบค้นที่อ้างอิงคอลัมน์ที่เพิ่งมีการเปลี่ยนแปลง / ลบ)
และจะเกิดอะไรขึ้นเมื่อฉันเพิ่งALTER TABLE...
สร้างฐานข้อมูลที่ทำงานอยู่ ทุกอย่างหยุดลงเมื่อสิ่งนี้เกิดขึ้นหรือไม่? ข้อมูลเสียหายหรือไม่ เป็นต้น
อีกครั้งฉันส่วนใหญ่หมายถึง Postgres หรือ MySQL เป็นสิ่งที่ฉันพบ
(และใช่ทุกครั้งที่ฉันต้องทำสิ่งนี้ก่อนที่ฉันจะทำ "วิธีการที่ถูกต้อง" สำรองสิ่งต่างๆจัดตารางเวลาดาวน์ไทน์ ฯลฯ ... แต่ฉันแค่อยากรู้ว่ามันเป็นไปได้ไหมที่จะทำสิ่งนี้ " สกปรก "หรือหากมีระบบฐานข้อมูลใด ๆ ที่รองรับการเปลี่ยนแปลงสคีมา" แบบเร็ว, สดและสกปรก ")
มีคนแนะนำOnline Schema Change สำหรับ MySQL จากสคริปต์ Facebook (โดยมีบทช่วยสอนที่นี่และแหล่งที่มาที่นี่ ) ... ดูเหมือนจะเป็นวิธีที่ดีในการทำให้ชุดของ "แฮ็ค" เป็นแบบอัตโนมัติ ... มีใครเคยใช้มา การผลิตคล้ายกับอะไร?
pg_reorg
สามารถช่วยในสถานการณ์ที่ยากขึ้น