回答

27

根據EF documentation,您可以使用Script-Migration命令。

如果您只想編寫所有的遷移腳本,您只需從Package Manager控制檯調用它即可。如果你只想腳本上次遷移的變化,你可以這樣調用:

Script-Migration -From <PreviousMigration> -To <LastMigration> 

一定要檢查的文檔,有是幾個選項的命令。

+1

腳本遷移工具似乎不適用於降級(當遷移的時間比From遷移早)。有關如何生成「撤消」腳本的任何想法? – Nullius

+1

@Nullius你不想調用它,或者看到它像一個「撤銷腳本」,你只需要對你的代碼進行撤銷,然後更新Db並獲得最新的腳本...... –

+1

我們有一個部署服務器,它也管理數據庫遷移。例如:當部署得到回滾時,數據庫也應該降級到以前的狀態。管理db-migrations的構建步驟需要一個'up'和'down'腳本。我們發現,在指定比From遷移更早的To遷移時,腳本遷移也適用。但是,應該將遷移設置爲實際想要遷移的遷移之前的遷移。另外,當試圖爲最新的遷移生成'down'腳本時,應該使用'ZZZZZZ'(或類似的)作爲From遷移參數。 – Nullius

1

您可以使用dotnet的核心CLI生成腳本

dotnet ef migrations script 

你也可以把這個新的電源外殼out-file命令文件。

dotnet ef migrations script | out-file ./script.sql