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

.NET 6本地生成迁移后如何更新服务器SQL Server数据库?

服务器数据库更新方案(.NET 6 + SQL Server Express + EF Core)

针对你的场景,有两种可靠的方式更新服务器数据库,同时支持生成SQL脚本,具体操作如下:

一、生成SQL脚本手动执行(推荐生产环境使用)

这种方式可以提前预览所有数据库变更,便于验证和排查问题:

  • 打开本地的NuGet包管理器控制台,执行以下命令生成更新脚本:
    # 如果服务器已经应用过部分迁移,指定起始和结束迁移
    Script-Migration -From <服务器最后一次应用的迁移名称> -To <本地最新的迁移名称> -Output "C:\你的路径\db_update.sql"
    
    # 如果服务器从未应用过迁移,直接生成全量脚本
    Script-Migration -To <本地最新的迁移名称> -Output "C:\你的路径\db_update.sql"
    
  • 打开生成的db_update.sql脚本,仔细检查变更内容(比如涉及Identity用户表的字段修改、索引新增等)
  • 使用SQL Server Management Studio(SSMS)连接到服务器的SQL Server Express实例,执行该脚本完成数据库更新

二、直接在服务器执行迁移命令

如果服务器环境允许运行.NET工具,可直接通过命令行完成更新:

  • 确保服务器上应用的appsettings.json中,数据库连接字符串已指向服务器的SQL Server Express实例
  • 在服务器上打开命令行,导航到应用发布目录,执行对应命令:
    # 若服务器安装了.NET 6运行时
    dotnet ef database update --project <你的项目名称> --startup-project <你的启动项目名称>
    
    # 若应用是独立发布(自带运行时)
    YourApp.exe ef database update
    
  • 注意:执行命令的账号需要拥有服务器数据库的Schema修改权限(如创建表、修改字段等)

关键注意事项

  • 执行前务必备份服务器数据库,防止变更过程中出现数据丢失
  • 核对服务器__EFMigrationsHistory表的记录,确保迁移的起始版本与服务器实际状态一致,避免重复执行或遗漏迁移
  • 针对IdentityCore的迁移,重点确认用户表(如AspNetUsers)的变更不会影响现有用户数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 20:40:29