当前位置: 首页 > 知识库问答 >
问题:

CloudFoundry应用程序实例-EF核心数据库迁移

葛炯
2023-03-14

我写了一封信。NET Core Rest API,它在启动时迁移/更新数据库(使用实体框架核心)。cs。目前,生产环境中仅运行一个实例。似乎建议在生产环境中运行2个实例。

>

此外,如何防止这两个实例更新数据库?我已经阅读了有关CF\u INSTANCE\u INDEX环境变量的内容。只有当CF\u INSTANCE\u INDEX为0时,才可以启动数据库迁移吗?或者CloudFoundry是否提供了下一种机制:启动第一个实例,当这个实例启动并运行时,将启动第二个实例?

共有1个答案

滕成双
2023-03-14

执行cf push命令时会发生什么情况?这两个实例是自动停止的还是我需要执行cf stop?

是,你的应用程序将停止。新代码将阶段化(即buildpacks运行)并生成一个水滴。然后,系统将使用新的液滴调出所有请求的实例。

此外,如何防止这两个实例更新数据库?我已经阅读了有关CF\u INSTANCE\u INDEX环境变量的信息。仅当CF\u INSTANCE\u INDEX为0时才开始数据库迁移可以吗?

你当然可以那样做。实例编号保证是唯一的,并且第0个实例将始终存在,因此如果您限制为第0个实例,则保证只运行一次。

另一种选择是将迁移作为任务运行(即运行任务)。它在自己的容器中运行,因此无论有多少实例,它都只运行一次。这篇文章提供了一些关于将迁移作为任务运行的技巧。

或者CloudFoundry是否提供了下一种机制:启动第一个实例,当这个实例启动并运行时,将启动第二个实例?

确实如此,这是推送的策略=滚动标志。

看见https://docs.cloudfoundry.org/devguide/deploy-apps/rolling-deploy.html

我不确定此功能是否能确保您的迁移只运行一次。根据文档(请参阅上面链接中的“如何工作”部分),新容器和旧容器可能会在短时间内重叠。如果是这样,运行迁移可能会破坏旧实例。这将是一段很短的时间,直到它们被新的实例取代,但可能需要考虑一些事情。

 类似资料:
  • 升级核心3.0后,无法在包管理器中添加迁移。这是我的错误

  • 本文向大家介绍hadoop迁移数据应用实例详解,包括了hadoop迁移数据应用实例详解的使用技巧和注意事项,需要的朋友参考一下 项目开发中hadoop一直装在虚拟机上,最近要迁移到服务器上。记录下迁移过程。 一、为虚拟机添加一块新的硬盘 虚拟机的初始硬盘只有30G,容不开要导出的数据。两种方式,一是给虚拟机扩容;二是为虚拟机添加一块新的硬盘。这里采取第二种方式。 1、添加虚拟硬盘 至此,添加硬盘成

  • 我目前对EF Core有一些问题。我有一些需要删除的数据,我正在努力查看流畅的API是如何工作的,正是关于函数。 考虑到微软自己网站的经典博客/帖子场景,我想知道到底是什么实体,OnDelete()是“目标”(因为没有更好的词),在某些情况下,它似乎是博客,在另一些情况下,是帖子。是否可以从两侧定义级联删除(即当父博客被删除时,帖子被删除),如果是这样,我认为代码应该如下所示: <代码>模型。实体

  • 应用程序使用identity server 4和entity framework core 2.0.3。 它已通过VSTS使用CI/CD部署在Azure web app中 它使用Azure SQL Server。 问题 application insights通知我发生了一个异常,导致用户无法登录,我最终通过重新启动azure Web-App解决了这个问题。

  • Oracle .NET 团队正在评估 EF Core 支持,但还没有宣布任何时间点。你可以在 Oracle EF Core 提供程序请求 上进行表决。 请直接向 Oracle 社区站点 询问关于此提供商的任何问题,包括发布时间表。

  • Devart 是一个第三方提供程序编写方,它为多种数据库提供了数据库提供程序。可以通过 devart.com/dotconnect 了解更多信息。 注意 该提供程序没有作为 Entity Framework Core 项目的一部分来维护。当考虑第三方提供程序的时候,一定要评估其质量、许可、支持情况等等以确保它们符合你的需求。 仅付费版可用 Devart dotConnect 是一个商业的第三方提供