簡體   English   中英

切換分支時如何解決Update-Database問題?

[英]How to solve Update-Database issue when switching branch?

我有一個實體,在Branch A中有一個列為int 現在,我切換到另一個B分支。 在這里,我創建一個遷移並將列更改為varchar並運行Update-Database 現在,如果我再次切換到分支A。 如果我在代碼中看到列數據類型為int ,但是在數據庫中,其數據類型為varchar 但是我希望它的數據類型為int 我什至不能從分支A中刪除此遷移,因為它是在分支B中創建的。我只能看到一種解決此問題的方法是刪除數據庫並運行Update-Database ,但是這樣做會丟失所有數據。 有沒有更好的方法來解決此問題。

我正在使用實體框架核心2.0.1。

我可以想到兩種選擇:

  1. 為每個分支使用不同的數據庫(最好的主意,恕我直言)
  2. 切換回分支A之前,請先取消使用Update-Database name-of-previous-migration從數據庫進行Update-Database name-of-previous-migration

例如,假設您進行了以下遷移:

  • 20180214094058_Initial.cs
  • 20180216100541_FirstMigration.cs
  • 20180218185111_MigrationBranchB.cs

您可以通過Update-Database FirstMigration取消應用MigrationBranchB (這將調用MigrationBranchBDown方法)。

相關文件

還原遷移

如果您已經對數據庫應用了遷移(或多個遷移),但是需要還原數據庫,則可以使用相同的命令來應用遷移,但是要指定要回滾的遷移的名稱。

Update-Database LastGoodMigration

暫無
暫無

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

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