[英]How to uninstall EF Core tables? Or how to remove all migrations ? Or how to call `dotnet ef database update 0` from user code?
[英]EF Core 3.1: Deleted all Migrations and the Database, how to recreate all tables in a new database?
我刪除了遷移文件夾中的所有遷移,還刪除了 SQL Server 中的數據庫。 我知道 - 現在 - 這些不應該完成,但我需要重新創建數據庫結構以保留應用程序。 我嘗試了“添加遷移初始”,但它只是生成一個空的遷移文件和一個快照文件。 如果我嘗試“刪除遷移”,那么它會抱怨一些丟失的遷移文件。
有沒有像我剛剛創建 DBContext 一樣“重置”快照,所以它會創建當前 DbSet 定義中的所有表?
我認為以下解決方案可以幫助您:
首先,確保數據庫被完全刪除,因為你說數據庫是在SQL中刪除的。 (創建第一個遷移后,會創建一個名為 __EFMigrationsHistory 的表,其中存儲遷移記錄,如果數據庫沒有完全刪除,則必須刪除此表)。
其次,完全刪除 Migrations 文件夾。
第三步,運行以下命令。
Enable-Migrations -EnableAutomaticMigrations -Force
在最后一步,運行以下命令
Add-Migration Initial
腳步 :
刪除狀態:刪除項目中的遷移文件夾
刪除數據庫中的 __MigrationHistory 表(可能在系統表下)
在包管理器控制台中運行以下命令:
Enable-Migrations -EnableAutomaticMigrations -Force
使用或不使用 -EnableAutomaticMigrations
最后,您可以運行:
Add-Migration Initial
這兩個鏈接也可以幫助您:
看來問題出在我的項目中! 正如@CodingMytra 在評論中指出的那樣,我的項目中有一個對舊數據庫的積極引用。 由於某種原因,它沒有重建也沒有更新,因此沒有反映模型/dbcontext 中的更改。 我創建了一個新的空項目,導入了所有源文件,生成了“初始”遷移並成功更新了數據庫。
感謝所有回復!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.