Tôi vừa cài đặt Entity Framework Migrations, thêm thuộc tính vào một lớp và cho EF Migrations một xoáy.Lấy kịch bản lệnh chuyển đổi khung thực thể ban đầu
Cơ sở dữ liệu phát triển của tôi đã được cập nhật kịp thời. Càng xa càng tốt.
Bây giờ, tôi muốn tạo tập lệnh thay đổi cho việc sử dụng Di chuyển ban đầu này cho cơ sở dữ liệu sản xuất. Lưu ý rằng có một cơ sở dữ liệu đã tồn tại từ trước vì tôi đã áp dụng nó cho một dự án hiện có.
Di cư qua tôi đã bao gồm:
PM> Get-Migrations
Retrieving migrations that have been applied to the target database.
201204102238194_AutomaticMigration
201203310233324_InitialCreate
PM>
tôi nghĩ rằng tôi có thể nhận được một kịch bản đồng bằng cách sử dụng sau đây:
Update-Database -SourceMigration:201203310233324_InitialCreate -TargetMigration:201204102238194_AutomaticMigration -script
Tuy nhiên, đó mang lại cho tôi những lỗi:
'201204102238194_AutomaticMigration' is not a valid migration. Explicit migrations must be used for both source and target when scripting the upgrade between them.
Chỉ để xem điều gì sẽ xảy ra, tôi đã đảo ngược hai tham số (di chuyển ngược) và đã nhận được kịch bản lệnh wou ld mong đợi sau khi thêm cờ -force (các cột mới bị giảm).
Tôi làm cách nào để có được tập lệnh cho lần di chuyển đầu tiên này?
Bạn nhận được di chuyển ban đầu như thế nào? Việc di chuyển tự động của bạn nên chứa tạo tập lệnh cho toàn bộ cơ sở dữ liệu mà không phải là những gì bạn muốn - thực thi tập lệnh như vậy trên các kết quả cơ sở dữ liệu hiện có trong nhiều lỗi. Bạn có thể thử [phương pháp này] (http://www.ladislavmrnka.com/2012/03/ef-4-3-migrations-and-existing-database) thay thế không? –
@Ladislav: Tôi không thực sự cần một tập lệnh cho toàn bộ cơ sở dữ liệu vì toàn bộ cơ sở dữ liệu (ban đầu) của tôi đã được sản xuất. Những gì tôi không thể tìm ra là làm thế nào để đi từ cơ sở dữ liệu đầu tiên đã có trong sản xuất, trước khi có sử dụng Migrations, để cập nhật đầu tiên của tôi. Tôi chắc chắn rằng Migrations có lược đồ DB ban đầu của tôi ở đâu đó vì việc đảo ngược tham số SourceMigration và TargetMigration cùng với * -force * tạo ra một kịch bản để DROP các cột mới của tôi. Tôi chỉ không thể làm cho nó đi từ cơ sở dữ liệu ban đầu đến lần lặp mới đầu tiên (thêm vài cột đó). –