Tôi đã thử cả dự án cơ sở dữ liệu của RedGate và Visual Studio và tôi thích lưu trữ định nghĩa cơ sở dữ liệu trong dự án cơ sở dữ liệu. Ngay khi cơ sở dữ liệu trở thành một phần của giải pháp, bạn có thể sử dụng nhà cung cấp kiểm soát nguồn ưa thích của mình. Hầu hết có tích hợp Visual Studio tuyệt vời.
Với các công cụ SSDT, bạn có 'phiên bản mới nhất' của định nghĩa cơ sở dữ liệu, cho phép bạn dễ dàng thực hiện so sánh lược đồ và tạo tập lệnh nâng cấp lược đồ.
Điều đó nói rằng, lược đồ thường chỉ là một phần của phương trình. Trong cuộc sống thực, hóa ra cơ sở dữ liệu đã có sẵn rất nhiều dữ liệu. Và người dùng của tôi có xu hướng khá thất vọng khi họ mất nó.
Vì vậy, ngay sau khi tôi tung ra v1.0, các mảng cần thiết để duy trì các tập lệnh nâng cấp. Đôi khi những điều này chỉ chứa các thay đổi lược đồ, nhưng nhiều lần tôi cần tạo mặc định dựa trên nội dung của một số bảng khác, cần phải giải phóng một ràng buộc cụ thể cho đến khi tôi gieo dữ liệu, v.v. Sở thích của tôi là có các kịch bản nâng cấp này trong một thư mục riêng trong dự án cơ sở dữ liệu. Chúng thường trông giống như 'nâng cấp từ v1.0 lên v1.1'.
Cơ sở dữ liệu của tôi luôn có bảng tham chiếu cho tôi biết số phiên bản hiện tại, vì vậy tôi có thể chặn các nâng cấp không tương thích. Tuyên bố đầu tiên trong tập lệnh nâng cấp của tôi kiểm tra phiên bản hiện tại và bảo lãnh nếu nó khác với dự kiến.
Một lợi ích khác từ các dự án cơ sở dữ liệu là có thể triển khai các bộ dữ liệu khác nhau dựa trên cùng một lược đồ. Tôi có một bộ dữ liệu khác nhau để phát triển, nhóm QA, thử nghiệm chấp nhận của người dùng và cho các thử nghiệm tích hợp tự động. Vì một dự án cơ sở dữ liệu chỉ có thể có 1 tập lệnh triển khai sau, nên mẹo ở đây là tạo một dự án cơ sở dữ liệu mới tham chiếu dự án 'chính' và làm cho bộ dữ liệu tùy chỉnh của dự án triển khai bài của dự án đó.
Đây là 2 xu của tôi, bất kể bạn đưa ra điều gì, trên hết, nó phải phù hợp với bạn và nhóm của bạn và hy vọng hỗ trợ bạn trong hầu hết các nhiệm vụ chung.