Cách tốt để di chuyển các thay đổi DB từ môi trường Phát triển sang QA sang Môi trường sản xuất là gì? Hiện tại chúng tôi:
- Kịch bản thay đổi trong tệp SQL và đính kèm nó vào một mục công việc TFS.
- Công việc được đánh giá ngang hàng
- Khi công việc đã sẵn sàng để thử nghiệm thì SQL sẽ chạy trên QA.
- Công việc được kiểm tra QA
- Khi công việc đã sẵn sàng để sản xuất thì SQL sẽ chạy trên cơ sở dữ liệu sản xuất.
Vấn đề với điều này là nó rất thủ công. Nó phụ thuộc vào nhà phát triển ghi nhớ để đính kèm sql hoặc người đánh giá ngang hàng bắt nó nếu nhà phát triển quên. Đôi khi, cuối cùng, người thử nghiệm hoặc người triển khai QA là người phát hiện ra vấn đề.
Một vấn đề thứ hai là đôi khi bạn cần phải phối hợp các thay đổi theo cách thủ công nếu hai tác vụ riêng biệt thay đổi cùng một đối tượng cơ sở dữ liệu. Điều này có thể chỉ là như vậy nhưng có vẻ như vẫn nên có một số cách tự động để "gắn cờ" những vấn đề này hoặc một cái gì đó.
Thiết lập của chúng tôi: Cửa hàng phát triển của chúng tôi có đầy đủ các nhà phát triển với nhiều kinh nghiệm về DB. Các dự án của chúng tôi rất định hướng DB. Chúng tôi chủ yếu là một cửa hàng .NET và MS SQL. Hiện tại chúng tôi đang sử dụng MS TFS Work Item để theo dõi công việc của chúng tôi. Điều này rất hữu ích cho việc thay đổi mã vì nó liên kết các thay đổi với các mục công việc để tôi có thể tìm hiểu chính xác những thay đổi tôi cần đưa vào khi di chuyển sang môi trường QA và Sản xuất. Chúng tôi hiện không sử dụng dự án DB nhưng có thể chuyển sang dự án đó trong tương lai (có thể đó là một phần của câu trả lời).
Tôi rất quen với hệ thống kiểm soát nguồn của mình chăm sóc những thứ như thế này cho tôi và muốn có cùng một thứ cho SQL của tôi.