Migration ít downtime cốt ở chỗ tránh các thao tác khóa bảng lâu hoặc viết lại cả bảng vào giờ cao điểm.
Pattern an toàn theo nhiều bước: thêm cột nullable → backfill dữ liệu theo từng lô nhỏ → deploy code app đọc/ghi tương thích cả cũ lẫn mới → cuối cùng mới thêm constraint/index (dùng CONCURRENTLY để không khóa ghi).
sql
CREATE INDEX CONCURRENTLY idx_orders_created_at ON orders (created_at);Đừng chạy migration nguy hiểm chung với deploy app khi chưa rõ nó khóa ở mức nào.
Luôn test trên dữ liệu giống production và chuẩn bị sẵn kế hoạch rollback.