我们有一个Web应用程序(Net Core 1.0.0-preview 2 -003121)部署到Azure应用程序服务,我们正在努力部署迁移。
在RC 1/2中,可以使用似乎自动存在的ef.cmd文件进行迁移,也就是说,我们可以使用该文件运行
dnx ef database update
但这个不见了dotnet ef
未安装在Azure应用服务本身中,因此这不是一个选项。
有没有什么不涉及从代码运行迁移/从visual studio部署迁移的想法?
我们正在尝试构建一个持续的部署管道,我宁愿避免从代码中强制部署迁移。
我的google fu显然是失败的我在这里,因为它不能为我的生活找到任何东西,我不能是唯一一个试图部署迁移服务器上
TIA
2条答案
按热度按时间zrfyljdw1#
我们最终做的是:
在构建端,我们生成一个幂等数据库创建脚本:
其中ApplicationContext是EF上下文的名称,migrations.sql是sql脚本文件名。
然后在部署端,我们有一个小的powershell脚本,它可以有效地运行migrations.sql脚本
ldioqlga2#
从.Net 6.0(可能还有.Net Core 3.x)开始...
您可以让ARM模板中的
deployScript
为您执行迁移。下面是设计为Azure Marketplace部署的an example。该示例假定您已预生成script.sql
,该script.sql
保存在Marketplace应用部署“bundle”的artifacts
文件夹中。然后,deployScript
只需运行一个Invoke-Sqlcmd
来运行script.sql
文件。