Hãy để tôi đưa vào một quan điểm khác. Bảo trì cơ sở dữ liệu khung thực thể hoàn toàn vô dụng trong bất kỳ doanh nghiệp hoặc dự án cơ sở dữ liệu lớn nào.
Vấn đề là:
Cập nhật lược đồ tự động. Đây hoàn toàn không phải là điều tôi muốn vì nó hoàn toàn vi phạm các nguyên tắc cơ bản của bảo trì cơ sở dữ liệu. Vấn đề là: (a) ai đó đang chạy phiên bản mới hơn cập nhật cơ sở dữ liệu thay vì gặp sự cố và (b) các bản cập nhật được lên lịch với dba thường lấy bản sao lưu FIRST. Vì vậy, cập nhật tự động là vô ích.
Tạo Db chỉ hoạt động trên các trường hợp cạnh suy thoái về cơ bản. Thậm chí không thử sử dụng các tính năng cơ sở dữ liệu nâng cao - bất kể cái nào. Ví dụ về máy chủ Sql: bao gồm các trường trong chỉ mục, bộ lọc trên chỉ mục, phân vùng, nén, quy tắc xác thực cho các trường.
Di chuyển - giả định các trường hợp cạnh suy biến một lần nữa: không dễ dàng chuyển đổi dữ liệu hoặc cập nhật nhiều bước. Ví dụ: Bảng X có trường "người dùng" lịch sử ghi lại người dùng thực hiện việc gì đó. Thiết lập mới có bảng Người dùng, do đó, người ta cần tạo bảng người dùng, sau đó tạo người dùng, sau đó tạo trường tham chiếu người dùng trong bảng x, sau đó cập nhật bảng này với người dùng từ bảng người dùng, sau đó xóa trường người dùng.
Cách hợp lý duy nhất để đối phó với các kịch bản này là các kịch bản tạo và di chuyển và phiên bản phù hợp.
Bây giờ, SSDT - đó là một công cụ tuyệt vời để phiên bản một phiên bản cơ sở dữ liệu cụ thể tốt hơn nhiều so với Entity Framework vì nó thực sự - hoạt động. Như trong: nó ghi lại tất cả các tính năng. Trên bất kỳ cơ sở dữ liệu nào tôi có, tôi gần như có thể sử dụng mã trước tiên - bởi vì chúng tôi luôn có các chỉ số được lọc ít nhất;) EF thậm chí sẽ không đưa tôi đến 10% những gì tôi cần.
Cách tiếp cận của chúng tôi là:
Thiết kế cơ sở dữ liệu trong cơ sở dữ liệu, sau đó đồng bộ hóa xuống mô-đun SSDT được kiểm tra. Đồng bộ hóa lược đồ cho phép các nhà phát triển cập nhật phiên bản của họ nhanh chóng. Luôn có một cơ sở dữ liệu chính có thẩm quyền với phiên bản hiện tại ở đâu đó (trên một máy chủ đặc biệt) để chúng tôi có phiên bản tham chiếu để làm việc.
Tạo các tập lệnh delta khi cần cho các bản phát hành cũng được phiên bản và có một cơ chế tốt để triển khai chúng vào cơ sở dữ liệu.