【问题标题】:Deploying Entity Framework migration scripts to production database将实体框架迁移脚本部署到生产数据库
【发布时间】:2018-03-01 21:48:18
【问题描述】:
据我所知,我只能通过 Visual Studio 包控制台将迁移脚本应用到数据库。但是,如果我需要将我对数据库所做的最新更改的脚本部署到我无法通过 Visual Studio 访问的生产数据库,该怎么办。有没有办法将 .cs 迁移脚本转换为可以直接通过 SQL Server 应用的 .sql 脚本?或者是否有将数据库更新部署到生产数据库的替代方法?
【问题讨论】:
标签:
entity-framework
deployment
migration
【解决方案1】:
有一个名为 Migrate.exe 的程序(它应该放在你的包文件夹中)应该由你的 CI 系统中的一些部署脚本使用(jenkins/teamcity/visualstudioonline)
当您使用 NuGet 安装 Entity Framework 时,migrate.exe 将
在下载包的工具文件夹中。在 \packages\EntityFramework.\tools
拥有 migrate.exe 后,您需要将其复制到
包含您的迁移的程序集。
您永远不应该考虑从 VISUALSTUDIO 进行迁移
source
对于.NET CORE,你可以简单地使用一个命令:
dotnet ef migrations script --output "script.sql" --context MY_DBCONTEXT
上下文可以是您的本地数据库,但它必须与您的生产数据库处于相同的迁移状态,控制台版本中正在进行大量配置,因此您应该能够谷歌一个地方而不是上下文,你可以放置一个连接字符串。