Nhiệm vụ: Thiết kế và thực hiện nhập dữ liệu từ cơ sở dữ liệu cũ sang haih-cms
Thiết kế và thực hiện nhập dữ liệu từ cơ sở dữ liệu cũ sang haih-cms
Chuẩn bị quá trình nhập dữ liệu một lần có thể tái lập từ dự án MySQL cũ sang mô hình đích haih-cms.
Mục tiêu
Thực hiện việc chuyển đổi dữ liệu có cấu trúc từ MySQL cũ sang mô hình haih-cms mới một cách có kiểm soát và kiểm chứng được. Đây là một giai đoạn kỹ thuật độc lập, không phụ thuộc vào hoạt động tiếp theo của ứng dụng Ruby.
Cần làm gì
- Dựa trên việc kiểm kê và mô hình đích, xác định các bảng, trường và mối quan hệ tham gia vào quá trình nhập.
- Chuẩn bị sơ đồ ánh xạ (mapping) từ hệ thống cũ sang haih-cms.
- Xác định các quy tắc chuyển đổi slug, ngày tháng, trạng thái, nội dung HTML và các mối quan hệ.
- Chuẩn bị quá trình nhập sao cho có thể chạy lại trên môi trường thử nghiệm mà không cần chỉnh sửa thủ công từng bản ghi.
- Xử lý các bản ghi trùng lặp, thiếu mối quan hệ và các giá trị cũ không hợp lệ.
- Tách biệt việc liên kết nhập bản ghi với quá trình di chuyển tệp đa phương tiện (media) tiếp theo.
- Sau khi nhập, lập báo cáo đối chiếu số lượng và kiểm tra mẫu nội dung.
Kết quả
Việc nhập dữ liệu có thể tái lập giúp chuyển đổi một tập dữ liệu nhất quán từ MySQL cũ sang haih-cms kèm theo báo cáo rõ ràng về các bản ghi bị bỏ qua hoặc đã chuyển đổi.
Tiêu chí hoàn thành
- Ánh xạ giữa các thực thể nguồn và đích đã được chốt.
- Quá trình nhập được thực hiện độc lập với ứng dụng Ruby đang chạy.
- Các mối quan hệ cần thiết và các trường quan trọng được giữ nguyên.
- Lần chạy thử nghiệm lặp lại có thể dự đoán trước.
- Có kiểm tra tính đầy đủ và danh sách các ngoại lệ.
Hạn chế
Không công bố bản kết xuất (dump), thông tin đăng nhập, dữ liệu cá nhân và các thông tin nhạy cảm khác từ cơ sở dữ liệu nguồn trong tác vụ mở này.
Ворклоги
Tiến độ: đã xác nhận phương pháp nhập dữ liệu thông qua việc gom nhóm các trường legacy
Mẫu mục tiêu hầu như đã được triển khai cho việc nhập admin_experiences: nhiều trường chuyên biệt của bản ghi cũ (customer, problem, solution, result, review, comment, v.v.) được sử dụng làm dữ liệu nguồn nhưng không chuyển đổi thành các trường tương tự trong lược đồ mới. Thay vào đó, chúng được tổng hợp thành một nội dung Concept sơ cấp duy nhất.
URL lịch sử được xử lý bằng một RedirectRule riêng khi cần thiết, nghĩa là khả năng tương thích của định tuyến không làm ô nhiễm mô hình nội dung.
Giai đoạn tiếp theo là áp dụng nguyên tắc này cho các bảng legacy chứa nội dung còn lại, sau đó khởi chạy một quy trình AI riêng biệt để xử lý lại các Concept đã tạo.