Tôi nghĩ rằng bạn đã thành thật gợi ý về câu trả lời đơn giản nhất.
Trước tiên, hãy cập nhật lớp truy cập dữ liệu của bạn để xử lý cả lược đồ mới và cũ:Các phần chèn và bản cập nhật phải cập nhật cả bản mới và cũ để giữ cho mọi thứ được đồng bộ hóa. Các truy vấn chỉ nên xem lược đồ cũ vì nó là nguồn bản ghi tại thời điểm này.
Sau đó, sao chép tất cả dữ liệu từ lược đồ cũ sang lược đồ mới.
Sau đó cập nhật quyền truy cập dữ liệu để bây giờ truy vấn dữ liệu mới. Điều này sẽ giữ cho dữ liệu cũ được cập nhật, nhưng sẽ cho phép kiểm tra toàn bộ dữ liệu mới trước khi thực hiện bất kỳ thay đổi nào dẫn đến hai bộ dữ liệu không đồng bộ. Nó cũng sẽ giúp tạo điều kiện thuận lợi cho các bản cập nhật liên tục (tức là các ứng dụng có cả mã truy cập dữ liệu mới và cũ sẽ vẫn hoạt động cùng một lúc.
Cuối cùng, cập nhật lớp truy cập dữ liệu để chỉ truy cập vào lược đồ mới và sau đó xóa dữ liệu cũ.
Ngoại trừ giai đoạn cuối cùng này, bạn luôn có thể quay lại phiên bản trước nếu gặp sự cố.