Tôi có hai thư mục cho di chuyển của tôi (AuthContext và UserProfileContext), mỗi di chuyển của riêng họ và một số sql tùy chỉnh để chạy sau đó để di chuyển dữ liệu và whatnot.Mã EF đầu tiên di chuyển không chạy sau khi triển khai Azure
Tính năng này hoạt động tốt khi sử dụng bảng điều khiển trình quản lý gói. Tôi
- Khôi phục từ khâu sản xuất
- Run Update-Cơ sở dữ liệu -ConfigurationTypeName Migrations.Auth.Configuration
- Run Update-Cơ sở dữ liệu -ConfigurationTypeName Migrations.UserProfile.Configuration
Sau đó, mọi thứ đều rất hạnh phúc trong cơ sở dữ liệu mới, di chuyển dữ liệu được thực hiện xáo trộn nơi cần.
tôi đã cố gắng để kiểm tra sự di cư trên xuất bản phẩm theo:
- Khôi phục sản xuất trên cơ sở dữ liệu dev
- Độc chuỗi kết nối (tất cả bối cảnh sử dụng giống nhau) chỉ để dev cơ sở dữ liệu
- Publish để xanh trang web
- Đã chọn hộp áp dụng Mã di chuyển đầu tiên
- Chọn chuỗi kết nối đơn lẻ
Ok nó được xuất bản tốt; tuy nhiên, khi tôi đi xem cơ sở dữ liệu, không có gì xảy ra cả! Nó không tạo ra các bảng, cột hoặc dữ liệu cần thiết.
TLDR; Mã di cư đầu tiên không chạy sau khi xuất bản để Azure
Cập nhật 1 Tôi đã thử bất kỳ sự kết hợp của các bên dưới: chuỗi kết nối chỉ có một đơn vì vậy tôi đoán đó không phải là vấn đề, và thực hiện cuộc di cư là đã kiểm tra.
Khi xuất bản api chạy nhưng không có thay đổi cơ sở dữ liệu nào được thực hiện. Tôi nghĩ có lẽ tôi cần phải nhấn nó trước nhưng tôi chỉ nhận được các lỗi ngẫu nhiên khi tôi cố gắng sử dụng api (mà bây giờ tất nhiên dựa vào thiết lập cơ sở dữ liệu mới), và cơ sở dữ liệu vẫn không thay đổi.
Tôi đã nhìn thấy một vài tham chiếu ngoài đó về việc cần phải thêm thứ gì đó vào lớp Khởi động của tôi nhưng tôi không chắc chắn cách tiếp tục.
Cập nhật 2 Tôi đã giải quyết một vấn đề bằng cách thêm "Thông tin bảo mật liên tục = True" vào chuỗi kết nối của tôi. Bây giờ nó thực sự kết nối với cơ sở dữ liệu và gọi API của tôi; tuy nhiên, không có di chuyển nào đang chạy. Tôi đính kèm trình sửa lỗi vào môi trường Azure dev và bước qua ... trên cơ sở dữ liệu đầu tiên của tôi gọi nó là bước vào lớp Cấu hình cho Di chuyển được đề cập, sau đó là barfs và tôi không thể theo dõi lỗi.
public Configuration()
{
AutomaticMigrationsEnabled = false;
MigrationsDirectory = @"Migrations\Auth";
ContextKey = "AuthContext";
}
Cập nhật 3
Okay, đào xuống và lần đầu tiên nó chạm vào cơ sở dữ liệu, chúng tôi đang erroring. Có điều này có ý nghĩa vì mô hình đã thay đổi, nhưng tôi đã di chuyển tại chỗ, được bật và được kiểm tra! Một lần nữa, nó hoạt động tốt khi chạy "Update-Cơ sở dữ liệu" từ quản lý gói giao diện điều khiển, nhưng không phải khi sử dụng Execute Mã Đầu tiên Migrations trong xuất bản để Azure
Mô hình sao bối cảnh 'AuthContext' đã thay đổi kể từ khi cơ sở dữ liệu là tạo. Cân nhắc sử dụng Mã di chuyển đầu tiên để cập nhật cơ sở dữ liệu (http://go.microsoft.com/fwlink/?LinkId=238269).
Cập nhật 4 rồi tôi tìm thấy những vấn đề gốc rễ ở đây. VS là thiết lập các att. web.config bổ sung cho databaseInitializer trên chỉ một trong những bối cảnh cơ sở dữ liệu của tôi, một trong những không được đề cập là trong thực tế nhấn đầu tiên từ ứng dụng của tôi.
Vì vậy, bây giờ tôi phải tìm ra cách làm cho nó bao gồm nhiều bối cảnh, hoặc kết hợp tất cả nội dung của tôi vào một ngữ cảnh duy nhất.
Bạn đã lấy ook bài đăng này http://blogs.msdn.com/b/webdev/archive/2014/04/09/ef-code-first-migrations-deployment-to-an-azure-cloud-service.aspx, có vẻ như bạn có thể cần thêm mã vào mã Application_Start của Global.asax –
@JWCảm ơn, tôi đã thấy rằng, nó đặc biệt cho Azure Cloud Service và tôi đang sử dụng Azure Website, mà được cho là bạn không cần phải làm bất cứ điều gì thêm ... –
Tôi nghĩ rằng bạn phải đảm bảo rằng mã di chuyển db chạy cho dù đó là loại dự án nào. –