EF Migration指令整理 - HackMD

文章推薦指數: 80 %
投票人數:10人

tags: `Web` `DotNet Core` `Entity Framework` # EF Migration指令整理參考網址:[https://www.cnblogs.       Published LinkedwithGitHub Like Bookmark Subscribe ######tags:`Web``DotNetCore``EntityFramework` #EFMigration指令整理 參考網址:[https://www.cnblogs.com/wangjieguang/p/EFCore-Migration.html](http://example.com) 1)OnPowerShellInteractiveWindow 2)全部指令請參考help輸入:dotnetef 3)常用指令如下: 先跳到目錄下:cdsrc\HxCrmApi.Coreorcd'D:\00TFS\PJ2018017\API\hx-crm-api\src\HxCrmApi.Core' 打入指令:dotnetefmigrationsaddHxCrmApiDB_xxx(如果太多要移除,請輸入dotnetefmigrationsremove) 再打指令:dotnetefdatabaseupdate(這個全部都會執行,如果要指定請在後面打HxCrmApiDB_xxx) 4)要執行開發環境的資料庫請執行:$Env:ASPNETCORE_ENVIRONMENT="Development" 5)要執行正式環境的資料庫請執行:$Env:ASPNETCORE_ENVIRONMENT="Production" 6)要輸出SQL請執行:dotnetefmigrationsscript>D:\HxCrmApiDB_xxx.sql(這個全部都會執行,如果要指定請在後面打HxCrmApiDB_xxx) 7)要輸出SQL請執行:dotnetefmigrationsscriptHxCrmApiDB_xxx>D:\HxCrmApiDB_xxx.sql(這個全部都會執行,如果要指定請在後面打HxCrmApiDB_xxx) ```powershell Script-Migration[-From][-To][-Idempotent][-Output][-Context][-Project][-StartupProject][] Script-Migration-From20171023035934_v113-To20171024035934_V114 ``` 上面的命令会生成113版本迁移到114版本的SQL语句 https://docs.microsoft.com/zh-tw/ef/core/managing-schemas/migrations/?tabs=dotnet-core-cli#revert-a-migration >安裝工具 安裝命令列工具: 針對VisualStudio,我們建議使用套件管理員主控台工具。

針對其他開發環境,請選擇.NETCoreCLI工具。

>建立移轉 在您定義起始模型之後,即可開始建立資料庫。

若要新增初始移轉,請執行下列命令。

```powershell Add-MigrationInitialCreate dotnetefmigrationsaddInitialCreate ``` >自訂移轉程式碼 對您的EFCore模型進行變更後,資料庫結構描述會失去同步。

若要將其更新為最新狀態,請新增另一個移轉。

您能夠以類似版本控制系統中認可訊息的方式來使用移轉名稱。

例如,如果變更是要檢閱的新實體類別,您可以選擇像是AddProductReviews的名稱。

```powershell Add-MigrationAddProductReviews dotnetefmigrationsaddAddProductReviews ``` >移除移轉 在您新增移轉時,有時候會發現您必須在套用EFCore模型之前對其進行其他變更。

若要移除上一個移轉,請使用此命令。

```powershell Remove-Migration dotnetefmigrationsremove ``` >還原移轉 若您已經套用移轉(或多個移轉)到資料庫但需要還原,您可以使用相同命令來套用移轉,但必須指定所要復原到的移轉名稱。

```powershell Update-DatabaseLastGoodMigration dotnetefdatabaseupdateLastGoodMigration ``` >更新資料庫 接下來,將移轉套用到資料庫以建立結構描述。

```powershell Update-Database dotnetefdatabaseupdate ``` >產生SQL指令碼 對移轉進行偵錯或將其部署到生產資料庫時,產生SQL指令碼很實用。

您可以進一步檢閱程式碼的精確度,並對其進行微調以符合生產資料庫的需求。

指令碼也可以搭配部署技術使用。

基本命令如下。

```powershell Script-Migration dotnetefmigrationsscript ``` >下列範例會使用遷移名稱來建立InitialCreate遷移的腳本。

```powershell Script-Migration-ToInitialCreate ``` >下列範例會使用遷移識別碼,針對InitialCreate遷移之後的所有遷移建立腳本。

```powershell Script-Migration-From20180904195021_InitialCreate ``` >異動資料庫&產生異動相關SqlScript-verbose會顯示sqlscript ```powershell update-database-verbose ``` >產生不同migration版本間,所需要的異動SQLScript >產生最近一次差異的SQL(預設) ```powershell Update-Database-Script ``` >產生重初始化(0)到第(2)版所有SQL語法(e.gCreateAllTable) ```powershell Update-Database-Script-SourceMigration:$InitialDatabase-TargetMigration:secondMigration ``` >產生差異Sql(1)到(2)版的差異SQL(e.gAlterTable) ```powershell Update-Database-Script-SourceMigration:firstinit-TargetMigration:secondMigration ``` >產生差異Sql(2)到(3)版的差異SQL(e.gdropcolumn) ```powershell Update-Database-Script-SourceMigration:firstinit-TargetMigration:thirdMigration ``` >更多update-database相關指令 ```powershell get-helpupdate-database ``` ------------------------------- >常用語法 ```powershell Add-Migration Update-Database ``` >輸出異動的SQL不包含From,產生From之後,並輸出到指定的資料夾 ```powershell Script-Migration-FromXXX-o"D:\aaaaaa\ticket_0629-1.sql" ``` × Signin Email Password Forgotpassword or Byclickingbelow,youagreetoourtermsofservice. SigninviaFacebook SigninviaTwitter SigninviaGitHub SigninviaDropbox NewtoHackMD?Signup



請為這篇文章評分?