我剛剛安裝了Entity Framework Migrations,爲某個類添加了一個屬性,並給了EF Migrations一個旋風。獲取初始實體框架遷移腳本
我的開發數據庫被及時更新。到現在爲止還挺好。
現在,我想爲此初始創建一個更改腳本,用於生產數據庫的Migrations。請注意,有一個預先存在的數據庫,因爲我將其應用於現有項目。
的遷移我已經是:
PM> Get-Migrations
Retrieving migrations that have been applied to the target database.
201204102238194_AutomaticMigration
201203310233324_InitialCreate
PM>
我以爲我可以用得到的增量腳本如下:
Update-Database -SourceMigration:201203310233324_InitialCreate -TargetMigration:201204102238194_AutomaticMigration -script
然而,這給我的錯誤:
'201204102238194_AutomaticMigration' is not a valid migration. Explicit migrations must be used for both source and target when scripting the upgrade between them.
爲了看看會發生什麼,我將這兩個參數(向後移動)顛倒過來,並得到了我的腳本ld期望在添加-force標誌後(新列被刪除)。
如何獲得第一次遷移的腳本?
您是如何獲得初始遷移的?你的自動遷移應該包含爲整個數據庫創建腳本,這不是你想要的 - 在現有的數據庫結果上執行這樣的腳本會導致很多錯誤。你可以嘗試[這種方法](http://www.ladislavmrnka.com/2012/03/ef-4-3-migrations-and-existing-database)嗎? – 2012-04-11 08:49:13
@Ladislav:我並不需要整個數據庫的腳本,因爲我的整個(初始)數據庫已經投入使用。我無法弄清楚的是如何在使用Migrations之前從已經在生產的第一個數據庫進行第一次更新。我確信Migrations在那裏有我的初始數據庫模式,因爲反轉SourceMigration和TargetMigration參數以及* -force *會創建一個腳本來刪除我的新列。我只是無法從初始數據庫轉到第一個新的迭代(添加那些少數列)。 – 2012-04-11 16:31:34