Tóm tắt môi trường.MSBuild: tự động thu thập các tập lệnh di chuyển db?
- ứng dụng Asp.net web (nguồn lưu trữ trong svn)
- SQL cơ sở dữ liệu Server. (Lược đồ cơ sở dữ liệu (bảng/sprocs) được lưu trữ trong svn)
- phiên bản db được đồng bộ hóa với phiên bản lắp ráp ứng dụng web. (được lưu trữ trong bảng 'CurrentVersion')
- CI hudson server kiểm tra ứng dụng web từ repo và chạy tệp msbuild tùy chỉnh để xuất bản/ứng dụng gói.
Tập lệnh msbuild của tôi cập nhật phiên bản lắp ráp của ứng dụng web (Major.Minor.Revision.Build) trên mỗi bản dựng. 'Bản sửa đổi' được đặt thành bản sửa đổi svn hiện đang được kiểm tra và 'Xây dựng' thành số bản dựng hudson (tăng lên trên mỗi bản dựng tự động).
Bằng cách này tôi có thể khớp ứng dụng với bản sửa đổi thân cây cụ thể cũng nhận được số liệu thống kê xây dựng khác từ số bản dựng hudson.
Tôi muốn tự động hóa việc thu thập tập lệnh di chuyển (sprocs được cập nhật v.v.) để thêm vào gói zip. Tôi đoán bằng cách so sánh sửa đổi svn của db chưa được triển khai, để sửa đổi đang được triển khai, tôi có thể tìm thấy tệp db nào đã thay đổi trong thân kể từ lần triển khai cuối cùng đến cơ sở dữ liệu/môi trường đó.
Điều này có thể dễ dàng đạt được bằng cách gọi thủ công lệnh svn diff -r REVNO:REVNO
để liệt kê các tệp .sql đã thay đổi. Sau đó, các tệp này có thể phải được thêm vào gói theo cách thủ công. Sẽ tuyệt vời nếu điều này có thể được tự động hóa.
Trước tiên tôi sẽ tưởng tượng tôi sẽ phải viết một nhiệm vụ tùy chỉnh để kiểm tra phiên bản của db chưa được triển khai. Sau đó tôi khá không chắc chắn. Có ai có bất cứ đề nghị nào về việc làm thế nào để đạt được điều này thông qua một tác vụ msbuild hoặc là hiện tại hay tùy chỉnh?
Cuối cùng, tôi sẽ phải tự động tạo tập lệnh để thêm vào gói cập nhật bảng phiên bản cơ sở dữ liệu để đồng bộ hóa với ứng dụng.
Đây là một câu hỏi đáng lo ngại. Chúng tôi sử dụng khá nhiều kịch bản xây dựng, nhưng tôi vẫn đang đấu tranh để đưa DB vào SVN, đôi khi các nhà phát triển có thể chống SO thay đổi :) –
Ok, tìm thấy lệnh svn có thể xuất danh sách các tệp đã thay đổi thành tệp xml. Từ đó tôi sẽ có thể xử lý tệp xml đó thông qua msbuild để kiểm tra các tệp riêng lẻ mà tôi yêu cầu đối với vùng làm việc xây dựng. '>;' lệnh là mấu chốt;) svn diff -r REVNO: REVNO --xml --summarize "svn: // PathToTrunk">; d: /temp.xml –