Process · Migration

Đổi tên cột bằng expand-contract

Expand-contract qua bốn lần deploy Đổi tên cột Email thành ContactEmail không downtime: thêm cột mới, backfill và chuyển đọc sang cột mới, bỏ ghi cột cũ, rồi sau ít nhất một chu kỳ phát hành mới xoá cột Email. ≥ 1 CHU KỲ PHÁT HÀNH DEPLOY 1 Expand ADD ContactEmail NULL DEPLOY 2 Backfill UPDATE theo lô DEPLOY 3 Bỏ cột cũ khỏi code chỉ dùng cột mới DEPLOY 4 Contract DROP COLUMN Email Email ContactEmail Email ContactEmail Email Email ContactEmail Email ContactEmail ContactEmail Email ContactEmail ContactEmail ContactEmail Email ContactEmail ContactEmail ContactEmail SCHEMA cột trong bảng CODE GHI cột được ghi CODE ĐỌC cột được đọc ContactEmail còn rỗng đã chép dữ liệu sang Email vẫn còn trong bảng Email đã bị xoá THỜI GIAN Mỗi lần deploy đều rollback được độc lập: schema luôn chạy được với cả code cũ lẫn code mới. CHÚ GIẢI Cột cũ Email Cột mới ContactEmail Cột đã xoá Bước phá huỷ: sao lưu trước © tiennhm