Bagaimana kebanyakan sistem basis data "populer" (MySQL, Postgres ...) menangani perubahan tabel pada basis data produksi langsung (seperti menambah, menghapus, atau mengubah jenis kolum)?
Saya tahu cara yang benar adalah untuk membuat cadangan semua jadwal downtime dan kemudian lakukan perubahan.
Tetapi ... apakah ada sistem basis data saat ini yang mendukung melakukan hal-hal ini "online" tanpa menghentikan apa pun? (mungkin hanya menunda kueri yang mereferensikan kolom yang baru saja diubah / dihapus)
Dan apa yang terjadi ketika saya hanya melakukan ALTER TABLE...
pada live database yang sedang berjalan? Apakah semuanya berhenti ketika ini terjadi? Bisakah data rusak? dll.
Sekali lagi, saya kebanyakan mengacu pada Postgres atau MySQL karena ini yang saya temui.
(Dan, ya, kapan saja saya harus melakukan ini sebelum saya melakukannya "dengan cara yang benar", membackup semuanya, menjadwalkan downtine dll ... tapi saya hanya ingin tahu apakah mungkin untuk melakukan hal-hal semacam ini dan hal-hal "cepat dan kotor "atau jika ada sistem DB yang benar-benar memiliki dukungan untuk perubahan skema" cepat, hidup dan kotor ")
Seseorang baru saja menyarankan Perubahan Skema Online untuk MySQL dari skrip Facebook (dengan tutorial di sini dan sumber di sini ) ... sepertinya cara yang bagus untuk mengotomatiskan serangkaian cara "hacky" untuk melakukannya ... adakah yang pernah menggunakannya dalam sesuatu yang menyerupai produksi?
pg_reorg
dapat membantu dengan skenario yang lebih sulit.