Cách đơn giản cho một công ty nhỏ:kết xuất cơ sở dữ liệu của bạn sang SQL và thêm nó vào kho lưu trữ của bạn. Sau đó, mỗi khi bạn thay đổi điều gì đó, hãy thêm các thay đổi vào tệp kết xuất.
Sau đó, bạn có thể sử dụng diff để xem các thay đổi giữa các phiên bản, chưa kể có các nhận xét giải thích các thay đổi của bạn. Điều này cũng sẽ làm cho bạn hầu như miễn nhiễm với các nâng cấp MySQL.
Một nhược điểm mà tôi đã thấy ở điều này là bạn phải nhớ thêm SQL vào tệp kết xuất của mình theo cách thủ công. Bạn có thể rèn luyện bản thân để luôn ghi nhớ, nhưng hãy cẩn thận nếu bạn làm việc với người khác. Việc bỏ lỡ một bản cập nhật có thể là một điều khó khăn sau này.
Điều này có thể được giảm thiểu bằng cách tạo ra một số kịch bản phức tạp để làm điều đó cho bạn khi gửi lật đổ nhưng nó hơi nhiều đối với một chương trình của một người.
Chỉnh sửa: Trong một năm trôi qua kể từ câu trả lời này, tôi đã phải triển khai một chương trình tạo phiên bản cho MySQL cho một nhóm nhỏ. Việc thêm từng thay đổi theo cách thủ công được coi là một giải pháp phức tạp, giống như nó đã được đề cập trong các nhận xét, vì vậy chúng tôi đã kết xuất cơ sở dữ liệu và thêm tệp đó vào kiểm soát phiên bản.
Những gì chúng tôi phát hiện ra là dữ liệu thử nghiệm cuối cùng đã được đưa vào bãi chứa và gây khó khăn cho việc tìm ra những gì đã thay đổi. Điều này có thể được giải quyết bằng cách chỉ kết xuất lược đồ, nhưng điều này là không thể đối với các dự án của chúng tôi vì các ứng dụng của chúng tôi phụ thuộc vào một số dữ liệu nhất định trong cơ sở dữ liệu để hoạt động. Cuối cùng, chúng tôi quay lại việc thêm thủ công các thay đổi vào kết xuất cơ sở dữ liệu.
Đây không chỉ là giải pháp đơn giản nhất mà còn giải quyết được một số vấn đề mà một số phiên bản MySQL gặp phải khi xuất / nhập. Thông thường, chúng tôi sẽ phải kết xuất cơ sở dữ liệu phát triển, xóa mọi dữ liệu thử nghiệm, mục nhập nhật ký, v.v., xóa / thay đổi một số tên nhất định nếu có thể và chỉ sau đó mới có thể tạo cơ sở dữ liệu sản xuất. Bằng cách thêm các thay đổi theo cách thủ công, chúng tôi có thể kiểm soát chính xác những gì sẽ xảy ra trong quá trình sản xuất, từng chút một, để cuối cùng mọi thứ đã sẵn sàng và việc chuyển sang môi trường sản xuất càng dễ dàng càng tốt.