簡體   English   中英

EF6代碼優先更新數據庫,不刪除數據

[英]EF6 Code First update-database without deleting data

我正在嘗試使用在實體模型中所做的更改(一些額外的表列)來更新數據庫,但是我不想刪除並重新創建數據庫,因為它將刪除所有測試數據。 以前,我已經做到了這一點,並使用Seed方法創建了一些基本數據,但是現在我有很多我希望保留的數據。

我嘗試運行更新數據庫,但出現錯誤:

There is already an object named 'ActivityNoteLines' in the database.

查看遷移腳本,我可以看到它正在嘗試創建表ActivityNoteLines。 顯然,我不希望如此。 然后,我使用創建了一個初始遷移

Add-Migration InitialCreate –IgnoreChanges

但是現在當我運行update-database時,它認為沒有變化!

我確定可以做我想做的事,但我似乎無法使其工作。 如果必須刪除並重新創建數據庫,我將但想知道是否有人成功更新並保留了數據。

您遇到的問題是,“遷移”文件夾中的“創建”腳本想要創建所有表。 運行Update時,它會查看表dbo.MigrationHistory以查看已運行的遷移腳本。 您的數據庫在表中沒有創建,因此Update試圖運行它。

您可以嘗試將條目手動添加到表中,也可以編輯創建腳本並清除up和down方法的內容。 然后,當您運行update時,它將運行創建腳本,該腳本將不執行任何操作,並將條目寫入MigrationHistory表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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