Azure部署不使用新迁移

7gyucuyw  于 2023-11-21  发布在  其他
关注(0)|答案(1)|浏览(155)

我使用tutorial from Microsoft将我的应用部署到Azure。
将我的Web应用部署到Azure时,迁移不适用。还有另一个错误,说表“AspNetRoles”已经存在。
它加载初始页面很好,但当我尝试点击不同的页面时,我得到了这个错误:An internal server error showing that migrations haven't been updated in the database
需要说明的是,该映像来自已部署的Web应用程序,我现在将其置于开发模式,因为这些错误不会发生在我的本地计算机上。
当我在本地测试我的应用程序时,一切都运行得很好,数据库也正确地更新了我的新迁移。我希望收到同样的错误,但我没有。
我尝试在Program.cs文件中注解和取消注解context.Database.EnsureCreated()和context.Database.Migrate()行,并部署它,但发生了相同的错误。
我正在使用正确的连接字符串。
我已经使用SSH并遵循这些命令:cd /home/site/wwwroot./migrate并得到错误消息There is already an object named 'AspNetRoles' in the database.
编辑:我认为问题可能是在我的GitHub上的deademory moment中,如这里所见screenshot of github build with the dotnet bundle migration opened。我想知道这是否是因为我没有在我的bundle中复制'appsettings.json',如果我需要应用迁移,这是目前的主要问题。我不知道这意味着什么,也不知道如何做到这一点。

ldfqzlk8

ldfqzlk81#

我不能确定是什么问题,但我通过在Program.cs中添加context.Database.EnsureDeleted()context.Database.EnsureCreated()来修复它。
这是代码块,箭头指向修复我的问题的地方。

  1. using (var scope = app.Services.CreateScope())
  2. {
  3. var services = scope.ServiceProvider;
  4. var context = services.GetRequiredService<ApplicationDbContext>();
  5. context.Database.EnsureDeleted(); // <--
  6. context.Database.EnsureCreated(); // <--
  7. // requires using Microsoft.Extensions.Configuration;
  8. // Set password with the Secret Manager tool.
  9. // dotnet user-secrets set SeedUserPW <pw>
  10. var testUserPw = "fake_p4ssword_";
  11. await SeedData.Initialize(services, testUserPw);
  12. }

字符串
我不再得到AspNetRoles已经在数据库中的错误。

展开查看全部

相关问题