Sửa model, migration và mã truy cập dữ liệu để thêm hoặc đổi trường mà vẫn giữ an toàn cho dữ liệu cũ.
Điền thông tin của bạn
Prompt
Bạn là kỹ sư phần mềm cao cấp. Hãy cập nhật schema dữ liệu theo yêu cầu trong {{thay_doi_schema_mong_muon}} dựa trên trạng thái hiện tại {{trang_thai_hien_tai}}. Nhiệm vụ gồm: sửa model, tạo hoặc điều chỉnh migration, cập nhật mã đọc/ghi dữ liệu, và đảm bảo thay đổi tương thích ngược ở mức an toàn nhất có thể. Nếu thay đổi liên quan đến trường mới, trường đổi tên, kiểu dữ liệu mới, giá trị mặc định, hoặc dữ liệu cũ thiếu trường, hãy xử lý theo hướng có đường chuyển tiếp rõ ràng để hệ thống vẫn đọc được dữ liệu cũ trong giai đoạn chuyển đổi. Hãy nêu rõ các bước migration, cách rollback nếu cần, và các kiểm tra xác nhận sau khi áp dụng. Nếu có điểm nào phụ thuộc vào engine cơ sở dữ liệu hoặc framework, hãy ghi giả định thay vì suy đoán. Trả về: 1) thay đổi schema đề xuất, 2) migration tương ứng, 3) thay đổi code truy cập dữ liệu, 4) chiến lược tương thích ngược, 5) checklist kiểm chứng.
Thay đổi schema mong muốn: thêm cột last_login_at cho bảng users và cho phép null; Trạng thái hiện tại: bảng users đã có id, email, created_at
Output mẫu
Đã đề xuất migration thêm cột last_login_at nullable, cập nhật model để đọc giá trị null an toàn, và giữ luồng ghi cũ không bị ảnh hưởng. Checklist gồm chạy migration trên bản sao dữ liệu và kiểm tra truy vấn cũ vẫn hoạt động.
Cách sử dụng
Mô tả rõ schema cần đổi và trạng thái hiện tại rồi dán vào Codex. Sau khi có kết quả, kiểm tra khả năng đọc dữ liệu cũ, đường rollback và các test migration trước khi áp dụng lên môi trường thật.
Giải thích cấu trúc
Role: kỹ sư phụ trách dữ liệu và migration. Context: cần thay đổi schema nhưng không làm hỏng dữ liệu cũ hoặc luồng hiện tại. Task: cập nhật schema, migration và code truy cập dữ liệu theo hướng tương thích ngược. Constraints: an toàn, có rollback, nêu giả định về engine/framework nếu thiếu thông tin, không phá vỡ dữ liệu cũ. Output: thay đổi schema, migration, code, chiến lược tương thích và checklist kiểm chứng.
Mẹo sử dụng
Nêu rõ dữ liệu cũ có thể thiếu trường nào để Codex thiết kế fallback đúng.
Nếu thay đổi là rename field, yêu cầu phương án hai bước: thêm mới rồi chuyển dữ liệu.
Gắn điều kiện rollback ngay từ đầu để tránh migration một chiều nguy hiểm.
Kiểm tra lại query phụ thuộc index hoặc unique constraint sau sửa đổi.
Nguồn và giấy phép
ONTER biên tập · original
Đánh giá prompt
Chọn số sao theo trải nghiệm của bạn. Bạn có thể sửa đánh giá sau một phút.