Trong thời gian phát triển nặng nề, lược đồ cơ sở dữ liệu thay đổi nhanh chóng và liên tục, và vào thời điểm bản phát hành beta hàng tuần của chúng tôi xuất hiện, lược đồ đã thay đổi rất nhiều đến mức tùy chọn hợp lý duy nhất là loại bỏ tất cả các bảng tôi có thể và sao chép các phiên bản mới từ cơ sở dữ liệu dev của tôi. Rõ ràng, điều này sẽ không hoạt động một khi chúng tôi khởi chạy, vì dữ liệu sản xuất là một công thức cho thảm họa, vì vậy tôi đã tự hỏi những chiến lược nào được đưa ra để quản lý các thay đổi lược đồ cơ sở dữ liệu từ phiên bản này / phiên bản khác?
Một số tôi đã tìm thấy hoặc có kinh nghiệm:
- Chuyển thẳng từ cơ sở dữ liệu này sang cơ sở dữ liệu khác (những gì tôi đang làm bây giờ)
- Duy trì tệp UPDATE.sql bằng các câu lệnh SQL được chạy thông qua tập lệnh hoặc bằng tay.
- Duy trì tệp update.php với giá trị "phiên bản lược đồ db" tương ứng trong cơ sở dữ liệu hoạt động
Tùy chọn thứ ba có vẻ hợp lý nhất, nhưng vẫn tồn tại khả năng truy vấn SQL được xây dựng kém không thành công giữa tập lệnh, khiến cơ sở dữ liệu ở trạng thái cập nhật một nửa, cần phải khôi phục bản sao lưu.
Có vẻ như không có vấn đề gì, nhưng nó đã xảy ra, vì chúng tôi là một nhóm, chúng tôi sử dụng phpMyAdmin và dường như tôi thậm chí không thể dựa vào bản thân mình nhớ sao chép câu lệnh SQL đã thực thi để dán vào tệp update.php. Khi bạn điều hướng đến một trang khác, tôi phải viết lại câu lệnh SQL bằng tay hoặc đảo ngược sự thay đổi của tôi và làm lại.
Tôi đoán những gì tôi đang hy vọng là một giải pháp không ảnh hưởng đến quy trình phát triển được thiết lập của chúng tôi?
update.php
hoặcupdate.sql
tệp của mình trong môi trường thử nghiệm trước khi áp dụng nó vào cơ sở dữ liệu hoạt động, phải không? Và PHPMyAdmin đang bị đổ lỗi cho các vấn đề có thể xảy ra như kịch bản, có lẽ đã đến lúc xem xét một công cụ khác / tốt hơn?