用于自动更新最新实体框架核心迁移的工作流



所以我有一个EF Core项目。当我需要添加/迁移时,我会发出并更新命令:

dotnet ef数据库更新-v

这一切都很好,如果我需要更新QA、Staging、Prod数据库,我会更新appsettings.json文件中的连接字符串并运行该命令。

如果我无法从本地机器访问生产,会发生什么?如何将数据库更新为最新的迁移?

如果我记得使用实体框架(而不是.net核心(。当我部署新版本的.net应用程序时,它会尝试自动更新数据库。这个功能在.NET核心中仍然存在吗?

是的,您可以运行

dbContext.Database.Migrate();

在启动时,将数据库迁移与应用程序生命周期混为一谈通常不是一个好主意——最佳做法是让应用程序尽可能快速简单地启动,因为应用程序启动失败很难远程诊断,而且迁移会带来很多不受欢迎的复杂性。

另一种选择是将迁移操作作为部署的一部分来运行。这取决于您使用的部署方法,但例如,如果您使用CI服务器,您将能够运行

dotnet ef database update

复制新代码之后,但启动应用程序备份之前。

最新更新