簡體   English   中英

在 Remove-Migration 和 Update-Database 之后刪除 a.cs 遷移文件是否安全

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM