使用Kubernetes init容器应用EF迁移



我想迁移一个Asp。Kubernetes上的netcore应用程序。实际上,在Program.cs类中,有以下方式执行迁移的代码:

context.Database.Migrate();

我想从应用程序启动中删除这个镜像,并创建一个Docker镜像作为应用程序初始化容器的基础镜像。

任何建议吗?

您至少有两个选项可以从应用程序中单独运行迁移。

  1. 稍微改变一下应用程序的启动,寻找一个特定的启动参数,然后运行迁移并退出。这个选项可以帮助你保持简单(没有重复的启动,没有第二个容器,所有的东西都在同一个应用程序中)
  2. 创建一个单独的控制台应用程序,只是为了运行迁移,包/发布作为docker容器,并在启动应用程序之前运行,也许使用健康检查等待继续。如果你选择这个选项,我会使用"worker"模板,因为它已经配置了依赖注入。

希望它有帮助,它没有描述如何在你的应用程序之前运行任何一个选项,但我认为你可以使用kubernetes进入容器,在其他容器之前运行任何容器。

最新更新