在AWS上部署时,MySQL表不存在

本文关键字:MySQL 不存在 AWS 部署 | 更新日期: 2023-09-27 18:14:50

我将。net core应用程序部署到aws,但不知道如何进行初始迁移以创建表。在使用代码优先方法时,是否有一些等同于aws上的dotnet ef migrations add Initial dotnet ef database update来创建表?我的代码在线失败:

if (context.Record.Any())
            {
                return;   // DB has been seeded
            }

在AWS上部署时,MySQL表不存在

将MySQL连接器从MySQL . data . entityframeworkcore更改为SapientGuardian.EntityFrameworkCore.MySql解决了这个问题。然后使用默认命令执行所有迁移。

和开发一样。

在应用程序启动时必须调用dbContext.Database.EnsureCreated() (Configure方法)。

您需要创建服务范围,然后解析您的DbContext

public void Configure(IApplicationBuilder app)
{
    using (var scope = app.ApplicationServices.GetService<IServiceScopeFactory>().CreateScope())
    {
        using (var dbContext = scope.ServiceProvider.GetRequiredService<AppDbContext>())
        {
            if (dbContext.Database.EnsureCreated())
            {
                // Seed your database if necessary
            }
        }
    }
}

现在这是创建表的唯一方法,因为Oracle还没有实现迁移或脚手架。