自动在Azure表中迁移模型.NET Core



我正在使用实体框架.net core 2.2用于我的数据库模型,在我的代码中,我正在使用

public void Configure(IApplicationBuilder app, IHostingEnvironment env, MyContextModel MyContext) {
[snipped for clarity]
MyContext.Database.Migrate();
}

将任何迁移到数据库中。它在本地工作正常,并根据需要进行任何更改。如果我将我的项目发布到Azure,一切都可以构建并上传正载,但是当网站启动时,我会收到消息

"An error occurred while starting the application."

在浏览器窗口中,桌子保持不变。我在没有MyContext.Database.Migrate();的情况下删除并重新出版,并且该网站启动良好,因此我确定这与引起问题的自动迁移有关。我已经搜索了谷歌搜索,并尝试将线路放在DbInitializer和其他各个地方,但没有运气。

我已经检查了Cloud Explorer,并且登录了,因此没有许可问题。

有什么想法我缺少什么或如何(以及如何)阅读一些Azure日志?

这种方法(MyContext.Database.Migrate();)不适合所有人。虽然它是非常适合具有本地数据库的应用程序,但大多数应用程序将需要更强大的部署策略,例如生成SQL脚本。

当您在Azure上部署时,您可以添加以下代码int of Startup.cs

的配置方法
using (var scope = app.ApplicationServices.GetService<IServiceScopeFactory>().CreateScope())
{
    scope.ServiceProvider.GetRequiredService<ApplicationDbContext>().Database.Migrate();
}

有关更多详细信息,您可以参考此线程。

显然无法在实体框架核心中运行迁移。直到几个月前,在Visual Studio中发布的选项具有"执行迁移"复选框,但现在已经消失了。

您可以尝试运行

dotnet ef database update

或针对服务器的一些类似脚本,但这带回了太多错误可提及。因此,我试图生成SQL脚本以沿

的线路运行
dotnet ef migrations script

有了各种开关和其他开关,但这带回了不同的错误。最终我找到了这个。

Script-Migration -from 20190306131332_migration1 -o fileName.sql

成功地生成了我的SQL,可以手动运行数据库。

-from 

是最后一次迁移,因此,如果我想进行所有更改,因为迁移1(即迁移2,迁移3等)迁移1是-from标准

这将在root目录中创建一个名为 filename.sql的文件,其中.sln文件属于。

最新更新