小编Max*_*ero的帖子

实体框架核心迁移独立的 CI/CD 管道

我的公司正在转向微服务,作为这一转变的一部分,devops 正在使用 VSTS 和 GIT 在 Azure 中建立 CI/CD 构建发布管道。

当前管理迁移的模型是为开发人员提供 2 个独立 git 存储库中的 2 个项目。

项目 1 - API 服务项目 - .NET Framework / .Net Core
项目 2 - 使用迁移 API 基于 EF6 的数据库项目

这些项目具有基于存储库的完全独立的发布管道。因此,当您向 master 创建拉取请求时,管道会构建并发布项目。

这个新架构还支持蓝绿部署,我们的应用程序服务在多个节点上运行。

我们遇到的问题是,通过这种设置,我们基本上必须手动编写迁移代码,并且无法使用 EF Core 中提供的任何工具。

我读过的大多数文章和文档都显示从应用程序启动时运行迁移,但是如果您有多个应用程序服务节点,如何防止 2 个节点运行迁移?

我看过的其他文章显示了将迁移移动到一个单独的项目中,但该项目需要引用其中包含 dbcontext 的项目。在我公司的设置中这是不可能的。我们也不能做相反的事情,因为将 dbcontext 移动到数据库项目中会阻止我们在 api 服务项目中引用它。

有什么办法可以让 EF Core 支持这个模型吗?

在多节点应用服务上使用 EF Core 迁移实现蓝绿部署的首选方法是什么?

entity-framework ef-core-2.0 entity-framework-migrations

5
推荐指数
1
解决办法
1843
查看次数