天天看點

EF 資料遷移

資料遷移:

  1、打開程式包管理控制台

    工具=》NuGet 包管理器=》程式包管理器控制台  

  2、在程式包管理器控制台,執行語句。

    初始化:

    1、Enable-Migrations -EnableAutomaticMigrations

    2、Add-Migration InitialCreate

    3、Update-Database -Verbose

    更新資料庫:

    1、Add-Migration ChangeTable

    2、Update-Database -Verbose

    復原到空資料庫:

    Update-Database –TargetMigration: $InitialDatabase

生成遷移腳本:Update-DataBase –script

遷移指令:Add-Migration add_Person

資料遷移注意一下啟動項目

資料庫已存在,隻是新增了幾個字段,目前是沒有初始化資料庫遷移這些的情況:

  1、初始化資料遷移

    指令: (1)、Enable-Migrations -EnableAutomaticMigrations

        (2)、Add-Migration InitialCreate

  2、在目錄Migrations中 會生成的檔案 201901230316301_ChangeTable.cs

    把 Up() 和 Down() 的方法體删除掉,隻留個空方法

  3、檢視資料庫是否有 __MigrationHistory 這個表,有的話 就把表删除

  4、執行資料庫遷移指令

    指令:Update-Database -Verbose

  5、如果在第4步出現錯誤

    如Error:名稱已被一現有限制條件占用, 或者  名稱已由現有對象使用

    那就執行指令,檢視生成的SQL語句,然後再找錯誤的原因。

    指令:Update-DataBase –script

   

常用指令:

      1.Enable-Migrations (建立遷移目錄:Migrations,如果有多個資料上下文可以用 -ContextTypeName  指令遷移對應的資料上下文 )

      2.Add-Migration (建立一個遷移檔案)

      3.update-database(啟動遷移,生成資料庫)

      4.install-package entityframework(初始化配置包)

      5. Update-Database -Script -SourceMigration:"  " -TargetMigration:" " (生成資料庫版本之間的Sql腳本,正式區換版時有用)

      6.Update-Database –TargetMigration:"  "  (進行資料庫版本回溯)

      7.Update-Database –TargetMigration: $InitialDatabase -Script (回到初始狀态)