zoukankan      html  css  js  c++  java
  • EFCore数据库迁移命令

    前言 

         因为现在用.net core 开发新项目,过程中需要经常涉及到数据命令的迁移,今天分别整EFCore 的两种迁移数据库的方式 

    程序包管理器控制台 , Package Manager Console(PMC)

           -如果你用visual studio 开发建议使用PMC迁移方式,该方式是同时支持efcore和原先的ef 迁移的

    2 命令行工具 ,Command line interface (CLI)

           -该方式适用于跨平台开发的时候进行迁移数据库的,也就是可脱离visual studio,比如你用vs code,或直接打开cmd控制台进行操作

    安装工具

    dotnet ef 可以安装为全局或本地工具。 大多数开发人员偏向于使用以下命令将 dotnet ef 安装为全局工具:

    .NET Core CLI
    dotnet tool install --global dotnet-ef
    

    若要将它用作本地工具,请使用工具清单文件恢复声明为工具依赖项的项目的依赖项。

    使用以下命令更新工具:

    .NET Core CLI
    dotnet tool update --global dotnet-ef
    

    你需要将包添加到特定项目上,然后才能使用这些工具 Microsoft.EntityFrameworkCore.Design

    .NET Core CLI
    dotnet add package Microsoft.EntityFrameworkCore.Design
    

    验证安装

    运行以下命令以验证是否正确安装了 EF Core CLI 工具:

    .NET Core CLI
    dotnet ef
    

    命令的输出标识所使用的工具的版本:

    输出
    
                         _/\__
                   ---==/    \
             ___  ___   |.    |
            | __|| __|  |  )   \
            | _| | _|   \_/ |  //|\
            |___||_|       /   \/\
    
    Entity Framework Core .NET Command-line Tools 2.1.3-rtm-32065
    
    <Usage documentation follows, not shown.>
    

    更新工具

    使用 dotnet tool update --global dotnet-ef 将全局工具更新到最新的可用版本。 如果你在项目中本地安装了这些工具,则使用 dotnet tool update dotnet-ef通过追加 --version <VERSION> 到命令来安装特定版本。 有关更多详细信息,请参阅 dotnet 工具文档的 更新 部分。

    1.下面先列出两种方式对比,然后再分用vs 和vscode分别详细说明

    迁移命令描述
    CLI命令PMC命令
    创建迁移:migrationname为迁移名称 dotnet ef migrations add migrationName add-migration migrationName
    移除迁移(删除最近的一次迁移) dotnet ef migrations remove remove-migration
    应用所有的迁移(使迁移文件应用到数据库) dotnet ef database update update-database
    指定版本进行迁移 dotnet ef database update migrationName update-database migrationName
    生成对应版本的脚本 dotnet ef migrations script Script-Migration
    查看迁移列表 dotnet ef migrations list  
    查看数据库上下文信息 dotnet ef dbcontext info  

    2.程序包管理器控制台 , Package Manager Console(PMC)

       打开visual studio 程序包管理控制台,首先要善于使用pmc的帮助,输入get-help 查看帮助信息,根据提示我们可以输入 get-help about_entityframework  获取帮助信息,输入命令后我们应该能看到一只霸气的野马头像 ,头像下面就是efcore的相关帮助文档了 ,入下图

    1. add-migration  这个命令一般都不会有啥问题输入命令回车在输入迁移名称就ok

    2. remove-migration 这个也是如果想删除最后一次迁移 直接执行就好

    3. update-database 第一步添加一个迁移文件成功后,可以用该命令直接更新到数据库,默认是所有迁移,如果想指定迁移直接加上迁移文件的名字就好了,如:update-database migrationName,也相当于版本回滚操,比如有版本1,2,3 此时我想回滚到版本1  就直接 update-database 1,此时数据库中已经更新到1版本了,然后在两次remove-migration把2和3的迁移文件删除就好了

    4. Script-Migration  这个命令用于生成迁移文件对应的sql语句的,跟之前的ef貌似有些不一样,该命令如果不加任何参数 是默认生成所有迁移文件对应的sql语句,当然也参照格式指定餐宿

       Script-Migration -From migrationName1 -To migrationName2  -Context ContextName

       有意思的是 ,它不会生成from对应的迁移文件的sql,也就是说想上面这么写只会生生成migrationName2的sql语句,那么问题来了 ,需要生成第一个迁移文件的sql怎么办?经过查看官方文档,需要指定from参数为0,也就是  Script-Migration -From 0

    5. 最后温馨提示 使用 Get-Help <cmdlet-name>即可获取对应命令文档,如 get-help update-databa

    3 跨平台命令行工具 ,Command line interface (CLI)

      打开vscode  命令终端 输入dotnet ef 后也能看到一直霸气野马的头像,也将列出相关帮助信息

    1. dotnet ef migrations add  生成一条迁移
    2. dotnet ef migrations remove  删除最新一次迁移
    3. dotnet ef  database  update 生成迁移到数据库,跟上面pmc命令类似 后面加指定的迁移作为参数可以进行版本的回滚
    4. dotnet ef migrations script   也跟pmc类似  如果没有任何参数的话默认是生成所有sql脚本,但是参数格式略有不同如下:dotnet ef migrations script migrationName1  migrationName2 ; 是像这样直接跟迁移名称的也就是生成migrationName1 到migrationName2 的sql脚本
  • 相关阅读:
    使用树莓派打造远程WEB服务器
    oracle 12c新建pdb实例
    word标题变成黑色方块解决
    idea 报JDBC连接失败原因之一
    maven项目pom.xml需要的一些配置
    Mysql时区无法识别
    数据库报ORA-12514
    win10无法在桌面右键快捷打开个性化设置、显示设置,在任务栏右键无法快捷打开任务栏设置
    Tomcat部署项目时,发布的项目页面部分乱码,且页面渲染文件也是乱码。
    高性能、高稳定性的跨平台MQTT客户端
  • 原文地址:https://www.cnblogs.com/IIXS/p/11249379.html
Copyright © 2011-2022 走看看