EF Core 数据库迁移命令参考

在使用 Entity Framework Core 时,若你希望通过 Package Manager Console (PMC) 执行迁移相关命令,以下是常用的 EF Core 迁移命令:

PMC 方式

✅ 常用 EF Core PMC 命令(适用于迁移)

操作 PMC 命令
添加迁移 Add-Migration MigrationName
更新数据库到最新迁移 Update-Database
回滚一个迁移 Update-Database -ToMigration PreviousMigrationName
删除最后一次迁移(未应用到数据库) Remove-Migration
查看迁移历史 Get-Migrations
生成 SQL 脚本(从某一迁移到另一迁移) Script-Migration -From MigrationA -To MigrationB
生成 SQL 脚本(所有迁移) Script-Migration

示例:

  • 假设你添加了一个名为 InitialCreate 的迁移:
Add-Migration InitialCreate
  • 然后将更改应用到数据库:
Update-Database
  • 如果想回退到上一个迁移:
Update-Database -ToMigration PreviousMigrationName

⚠️ 注意事项:

  1. 使用这些命令前,请确保:

    • 已安装 Microsoft.EntityFrameworkCore.Tools NuGet 包;
    • Visual Studio 中打开了 Package Manager Console
    • 默认项目(Default project 下拉框)选择的是包含 DbContext 的项目。
  2. 如果你使用的是多项目结构,请确保启动项目和迁移所在项目一致或已正确配置设计时工厂(IDesignTimeDbContextFactory)。

CLI 方式

以下是 EF Core 对应于 CLI(命令行接口)的常用迁移命令,适用于 .NET CLI 工具:


✅ 常用 EF Core CLI 迁移命令

操作 CLI 命令
添加迁移 dotnet ef migrations add MigrationName
删除最后一次迁移 dotnet ef migrations remove
更新数据库 dotnet ef database update
更新数据库到指定迁移 dotnet ef database update TargetMigrationName
查看迁移历史 dotnet ef migrations list
生成 SQL 脚本(从某一迁移到另一迁移) dotnet ef migrations script -o output.sql FromMigration ToMigration
生成 SQL 脚本(所有迁移) dotnet ef migrations script -o output.sql

示例:

  • 添加一个名为 InitialCreate 的迁移:
dotnet ef migrations add InitialCreate
  • 应用迁移到数据库:
dotnet ef database update
  • 回退到某个特定迁移:
dotnet ef database update PreviousMigrationName
  • 删除最后一次迁移(尚未应用到数据库时):
dotnet ef migrations remove
  • 生成从 MigrationAMigrationBSQL 脚本:
dotnet ef migrations script -o migration_diff.sql MigrationA MigrationB

⚠️ 注意事项:

  1. 使用前请确保:

    • 已安装 .NET SDK
    • 项目中已引用 Microsoft.EntityFrameworkCore.DesignMicrosoft.EntityFrameworkCore.Tools
    • 你的项目是可启动项目或已正确配置 DbContext
  2. 如果使用多项目结构,请在 CLI 中切换到包含 DbContext 的项目目录,或使用 -p 参数指定项目路径。例如:

dotnet ef migrations add MyMigration -p ./MyProject/MyProject.csproj

选择合适的方式

EF CorePMCPackage Manager Console)和 CLI(命令行接口)的迁移命令功能相同,但语法不同:

  • PMC 使用 Add-MigrationUpdate-Database 等 PowerShell 风格命令;
  • CLI 使用 dotnet ef migrations adddotnet ef database update 等 .NET CLI 命令。

在选择 EF Core 迁移命令方式时,根据使用场景可以做如下推荐:

✅ 推荐使用 PMC(Package Manager Console)

  • 适用人群:Visual Studio 用户、不熟悉命令行操作的开发者;
  • 优点
    • 操作简单,集成在 Visual Studio 中;
    • 不需要切换终端或目录;
    • 支持自动补全和命令提示。
  • 缺点
    • 只能在 Windows 上使用;
    • 不适合自动化脚本。

当你在 Visual Studio 中开发 ASP.NET Core 或 .NET Framework 项目时,首选 PMC。


✅ 推荐使用 CLI(.NET Command Line Interface)

  • 适用人群:跨平台开发者、CI/CD 自动化用户、偏好命令行者;
  • 优点
    • 跨平台支持(Windows、macOS、Linux);
    • 易于集成到构建脚本、CI 流程中;
    • 更贴近现代 .NET 开发流程。
  • 缺点
    • 需要熟悉命令格式;
    • 在多项目结构中需手动指定项目路径。

如果你使用 VS Code、Rider 或进行持续集成部署,首选 CLI。


总结一句话推荐:

  • PM 面向 Visual Studio 快速开发场景,CLI 更适合跨平台与自动化流程。
    根据你的开发环境和团队协作方式选择最合适的方式即可。

你可能感兴趣的:(.NET,跨平台,数据库,ef,core,migrations,DB迁移命令,.net,migrations)