据我所知,我只能通过Visual Studio Package Console将迁移脚本应用到数据库。但是,如果我需要将我对数据库所做的最新更改的脚本部署到我无法通过visual studio访问的生产数据库,该怎么办?有没有办法将.cs迁移脚本转换为可以直接通过SQL Server应用的.sql脚本?或者是否有另一种方法将数据库更新部署到生产数据库?
有一个名为Migrate.exe
的程序(它应该放在你的包文件夹中),应该由CI系统中的某些部署脚本使用(jenkins / teamcity / visualstudioonline)
使用NuGet安装Entity Framework时,migrate.exe将位于下载包的tools文件夹中。在\ packages \ EntityFramework。\ tools中
迁移后,您需要将其复制到包含迁移的程序集的位置。
你不应该考虑从VISUALSTUDIO移植
对于.NET CORE
,你可以简单地使用一个命令:
dotnet ef migrations script --output "script.sql" --context MY_DBCONTEXT
上下文可以是你的localdb,但是它必须与你的生产数据库处于相同的迁移状态,控制台版本中有很多配置,所以你应该能够google一个而不是上下文你可以放一个连接字符串。