![](/img/trans.png)
[英]update-database command in EF6 not working after initial migration
[英]Is it safe to delete a .cs migration file after Remove-Migration and Update-Database
為了了解如何在 .NET Core 中使用遷移,我創建了一個偽造的 class,做了一個 Add-Migration / Update-Database。 然后我更改了偽造的 class 並進行了另一個添加遷移/更新數據庫。 我使用 Remove-Migration / Update-Database 兩次支持它們。 一切都很好,我對它的運作方式更滿意。
現在我留下了 2 個偽造的遷移文件和相應的設計器文件以及偽造的 class。 我可以安全地刪除所有這些嗎? 是否有一些協議可以永久刪除它們? 我已經檢查過了,他們在 _efmigrationhistory 表中的條目已經消失了。 另外,我可能必須刪除上下文文件中對 class 的引用。 我還需要擺脫什么?
如果做得好, dotnet ef migration remove
命令應該會刪除文件本身。 如果以某種方式這些文件沒有被刪除,那么您自己刪除它們是安全的。
遷移的目的是增量更新數據庫以匹配您的新數據模型,同時保留數據庫的現有內容。
您甚至可以將其稱為數據庫版本控制的一種形式。 例如,如果您進行了錯誤的 Migration,您可以恢復到您滿意的上一次 Migration。
CLI > dotnet ef database update MigrationToReturnTo
PMC > Update-Database -Migration MigrationToReturnTo
因此,盡管您可以安全地刪除舊的遷移文件,但您可能會失去為數據庫返回到先前架構的能力。
請注意,Entity Framework Core 因遷移混亂而臭名昭著。 我個人不建議刪除遷移,除非您確定要進行完整的數據庫重置。
如果由於記錄已經存在而遇到數據庫無法更新的問題,最好的選擇是完全刪除 Migrations 文件夾和__EFMigrationsHistory
表,並創建一個新的初始遷移。
據我所知,刪除這些文件是安全的。 如果你刪除了遷移文件,你基本上就設置好了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.