Tôi đang tìm cách triển khai hàng ngày và giữ cho các tập lệnh cơ sở dữ liệu phù hợp với bản phát hành.Chiến lược triển khai cơ sở dữ liệu (SQL Server)
Hiện tại, chúng tôi có cách triển khai khá hợp lý nguồn của mình, chúng tôi có phạm vi mã đơn vị, tích hợp liên tục và quy trình quay vòng.
Sự cố đang giữ các tập lệnh cơ sở dữ liệu phù hợp với bản phát hành. Mọi người dường như thử kịch bản trên cơ sở dữ liệu thử nghiệm, sau đó chạy chúng trên trực tiếp, khi ánh xạ ORM được cập nhật (tức là, các thay đổi sẽ xuất hiện) thì nó sẽ chọn cột mới.
Vấn đề đầu tiên là không có tập lệnh nào được viết ở bất kỳ đâu, thường là mọi người "cố gắng" để đưa chúng vào thư mục Subversion nhưng một số người lười biếng chỉ chạy tập lệnh trực tiếp và hầu hết không có ai biết ai đã làm gì với cơ sở dữ liệu. Vấn đề thứ hai là chúng tôi có 4 cơ sở dữ liệu thử nghiệm và họ luôn luôn nằm ngoài hàng và cách duy nhất để thực sự xếp hàng chúng trở lại là thực hiện khôi phục từ cơ sở dữ liệu trực tiếp.
Tôi tin tưởng rằng một quy trình như thế này cần đơn giản, dễ hiểu và dễ sử dụng để giúp nhà phát triển, không cản trở họ.
Điều tôi đang tìm kiếm là các kỹ thuật/ý tưởng giúp dễ dàng cho nhà phát triển muốn ghi lại tập lệnh cơ sở dữ liệu của họ để chúng có thể được chạy như một phần của quy trình phát hành. Quy trình mà nhà phát triển muốn thực hiện theo số.
Mọi câu chuyện, trường hợp sử dụng hoặc thậm chí là liên kết sẽ hữu ích.
cũng xem http://stackoverflow.com/questions/468703/source-control-and-stored-procedures –
"Quy trình mà nhà phát triển muốn theo dõi" không phải là cách duy nhất để giải quyết mục tiêu: Bạn có thể khóa quyền truy cập của họ vào các phiên bản dùng chung, làm cho chúng viết các bài kiểm thử đơn vị và làm cho chúng viết các kịch bản lệnh mà một hệ thống tự động sẽ thực thi và xác minh. Không phải là rất nhanh nhẹn, sẽ khá đau đớn, và tùy thuộc vào cách draconian bạn đã được nó sẽ có khả năng dẫn đến tinh thần thả/mutiny/lật đổ của quá trình này. Nhưng đó là một cách khác để giải quyết vấn đề. Bạn có thể giảm thiểu một số cơn đau bằng cách cho phép họ dev DB thay đổi trên hộp riêng của họ thay vì một trường hợp được chia sẻ. –