Trong ứng dụng CodeFirst tôi, địa phương xây dựng có một lá cờ app.config mà biểu thị không phải là trong sản xuất. Khi tôi không sản xuất nó hoàn toàn nukes và tái tạo cơ sở dữ liệu. Vì người dùng cơ sở dữ liệu sản xuất của tôi KHÔNG có quyền bỏ cơ sở dữ liệu ngay cả khi biến đổi web.config của tôi bị bỏ qua bằng cách nào đó (do đó EF cố gắng tạo lại cơ sở dữ liệu), cơ sở dữ liệu sản xuất của tôi sẽ không bị xóa.
công việc của tôi đi như thế này:
- Kiểm tra chi nhánh sản xuất của mã với mới nhất thay đổi
- Nhanh chóng kiểm tra khói/hồi quy (điều này đã nên được thực hiện trước khi kiểm tra mã vào từng ngành sản xuất, nhưng chỉ trong trường hợp)
- Tải bản sao lưu mới nhất của cơ sở dữ liệu sản xuất của tôi và cài đặt nó trên máy chủ SQLEXPRESS địa phương của tôi
- Run Open DBDiff giữa cơ sở dữ liệu mã địa phương của tôi tạo ra (mặc dù nó mã sản xuất, vì nó là địa phương nó Recr ăn cơ sở dữ liệu) so với bản sao lưu sản xuất.
- Xem lại tập lệnh được tạo và cố gắng chạy chúng chống lại bản sao lưu sản xuất
- Giả sử không có lỗi xảy ra, ghi đè lên cơ sở dữ liệu mã được tạo bằng bản sao lưu sản xuất và thử nghiệm dữ liệu sản xuất để đảm bảo tất cả dữ liệu vẫn còn nguyên;
- Chạy tập lệnh trên cơ sở dữ liệu sản xuất thực.
BướC# 2 tự động tạo cơ sở dữ liệu mới, sạch dựa trên mô hình dữ liệu mới nhất, vì vậy tôi luôn biết rằng tôi có cơ sở dữ liệu cập nhật không có các tạo phẩm từ những nỗ lực phát triển chưa sẵn sàng sản xuất.
Chính xác bạn đang tìm kiếm điều gì? Bạn không * có * để cấu trúc lại lược đồ DB của bạn với CF. – TheCloudlessSky
bạn không phải refactor nó nếu bạn thổi nó đi và tái tạo, nhưng nếu không, bạn sẽ cần phải viết và áp dụng các kịch bản di trú đến nó sẽ không? Nếu không, nó sẽ không khớp với mã. –