You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core 2.0 Code First迁移:切换至新数据库的正确流程问询

嘿,刚好之前帮团队处理过从LocalDB切换到新数据库的类似场景,给你梳理下完整的正确流程——不止是更新连接字符串,得按步骤来才能确保新库结构和旧的完全同步:

切换至新数据库的完整CLI操作流程

1. 先更新连接字符串

打开你的appsettings.json(或者对应环境的配置文件,比如appsettings.Production.json),把ConnectionStrings里的内容替换成新数据库的连接信息。举个SQL Server的例子:

"ConnectionStrings": {
  "DefaultConnection": "Server=你的新服务器地址;Database=目标库名;Trusted_Connection=True;MultipleActiveResultSets=true"
}

👉 提前确认:新数据库所在的服务器你有权限访问,要是还没创建目标库也没关系,后续迁移命令会自动帮你创建(前提是账号有建库权限)。

2. 验证连接有效性(可选但推荐)

在项目根目录打开终端,跑这个命令确认EF Core能正确识别新连接:

dotnet ef dbcontext info

如果输出里显示的是新数据库的信息,说明连接配置没问题,放心往下走。

3. 把现有迁移应用到新数据库

这是最关键的一步!执行以下CLI命令,让EF Core把你已有的3个迁移文件依次在新数据库中执行:

dotnet ef database update

这个命令会自动在新数据库里创建__EFMigrationsHistory表(记录已应用的迁移版本),然后把所有迁移对应的表结构、初始数据(如果迁移里包含Seed数据)都同步过去。

4. 特殊场景处理

如果新数据库是非SQL Server类型(比如MySQL、PostgreSQL),你还需要额外做两步:

  • 安装对应数据库的EF Core Provider NuGet包,比如MySQL用Pomelo.EntityFrameworkCore.MySql;
  • 在Startup.cs的ConfigureServices方法里,更新DbContext的配置,指定使用新的Provider。举个MySQL的例子:
    services.AddDbContext<YourDbContext>(options =>
        options.UseMySql(Configuration.GetConnectionString("DefaultConnection"), 
            new MySqlServerVersion(new Version(8, 0, 26))));
    

后续维护提示

之后你要是再做新的业务变更,正常用dotnet ef migrations add 迁移名称生成新迁移,再用dotnet ef database update同步到新数据库就可以了——EF Core会自动基于当前连接的数据库来处理版本管理。


内容的提问来源于stack exchange,提问作者Mihto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:13:35