Làm thế nào để bạn thực hiện thay đổi lược đồ cho cơ sở dữ liệu trực tiếp mà không có thời gian chết?
Chẳng hạn, giả sử tôi có cơ sở dữ liệu PostgreQuery với một bảng bao gồm nhiều dữ liệu người dùng khác nhau như địa chỉ email, v.v., tất cả đều được liên kết với người dùng cụ thể. Nếu tôi muốn chuyển địa chỉ email sang một bảng chuyên dụng mới, tôi phải thay đổi lược đồ và sau đó di chuyển dữ liệu email sang bảng mới. Làm thế nào điều này có thể được thực hiện mà không dừng ghi vào bảng gốc? Chắc chắn trong khi dữ liệu được ghi từ bảng cũ sang bảng mới, dữ liệu mới sẽ tiếp tục được ghi vào bảng cũ và bị bỏ lỡ, phải không?
Tôi đoán vấn đề này xuất hiện khá thường xuyên nhưng tôi không thể tìm thấy bất kỳ giải pháp tiêu chuẩn nào để giải quyết nó.
Bài viết này đề cập đến vấn đề nhưng tôi không thực sự hiểu bước 3. Anh ta nói viết vào cả hai bảng, sau đó di chuyển dữ liệu cũ từ bảng đầu tiên sang bảng mới. Làm thế nào để bạn chắc chắn rằng bạn chỉ di chuyển dữ liệu cũ?
(Tôi sử dụng PostgreSQL trên Heroku .)