gpt4 book ai didi

docker - Docker 容器中的 EF Core 迁移

转载 作者:IT老高 更新时间:2023-10-28 12:36:11 33 4
gpt4 key购买 nike

我正在 .NET Core 2.0 中设置 WebApi。我将使用 Entity Framework Core 作为 ORM。整个应用程序将部署为 Docker 容器。让我有点不安的是在这种情况下处理数据库迁移的方式。我的意思是生产环境。以下是我设法研究的内容:

  • 我们只是在应用程序中触发 Database.Migrate() 开始忘记整个世界 - 嗯,不知何故我不喜欢它;-)
  • 由命令行参数驱动的Database.Migrate()(使用指定参数运行一次docker容器以迁移数据库)
  • 登录应用容器并执行dotnet ef database update
  • 根据迁移生成普通的旧 SQL,并通过数据库管理工具执行它。看起来老派但有效。我最讨厌自己乱执行脚本。
  • 准备一个数据库容器,该容器已经包含从上面的代码生成的脚本,并且会自动执行它们。

还有其他建议吗?或者什么是最好、最合适的解决方案?

问候

最佳答案

在我看来,最能满足我们用例的是您的第一点(Database.Migrate() 到期启动)。所以对我来说,这是目前的首选方式。

我们在启动过程中有一些额外的星座:

  • Docker 容器仅限本地(用于开发环境和测试)

  • 自己的启动项目,执行 Database.Migrate() 部分(因为我们有多个项目都有自己的数据库)

  • 带有实际 API 网站的附加项目 :)

  • 带有 Azure SQL 服务器的生产环境(通过 Azure DevOps 管道发布和部署

  • 迁移是通过 dotnet ef 在其自己的项目中创建的 ...

    dotnet ef 迁移添加“您的迁移名称”--startup-project “您的实际 API 的路径”--context “数据库上下文名称”

重要:您必须先将工作目录更改为迁移项目才能使用另一个启动项目,但在“迁移项目”中生成迁移文件

在我们的例子中,它可以很好地与不同的 API 配合使用,并在后台拥有自己的数据库。

问候

关于docker - Docker 容器中的 EF Core 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48617880/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com