Ef code first EntityFramework核心产品迁移

Ef code first EntityFramework核心产品迁移,ef-code-first,entity-framework-core,entity-framework-migrations,Ef Code First,Entity Framework Core,Entity Framework Migrations,如何为生产更新数据库?我已将连接字符串机密移出应用程序。我们的CI/CD管道在appsettings中保留的连接字符串“template”中处理令牌替换,开发人员将无法访问生产数据库 我原本希望使用自动迁移,但今天却发现微软已经取消了EF Core的自动迁移 我是否每次都必须临时覆盖通常指定数据库本地开发人员副本的连接字符串?看起来是这样的,但对我来说这也是一个非常简陋的过程,所以我想知道我是否遗漏了什么。对于自动迁移意味着什么,人们似乎感到困惑 迁移由两部分组成: 从模型生成 应用于数据库 迁

如何为生产更新数据库?我已将连接字符串机密移出应用程序。我们的CI/CD管道在appsettings中保留的连接字符串“template”中处理令牌替换,开发人员将无法访问生产数据库

我原本希望使用自动迁移,但今天却发现微软已经取消了EF Core的自动迁移


我是否每次都必须临时覆盖通常指定数据库本地开发人员副本的连接字符串?看起来是这样的,但对我来说这也是一个非常简陋的过程,所以我想知道我是否遗漏了什么。

对于自动迁移意味着什么,人们似乎感到困惑

迁移由两部分组成:

  • 从模型生成
  • 应用于数据库
  • 迁移生成又可以分为两种类型:

    • 自动-在运行时,将当前模型与上次迁移生成的模型进行比较,如果有更改,将生成自动迁移代码
    • 手动-使用设计时工具(
      addmigration
      命令)在设计时生成迁移。可以修改自动生成的代码。无论是否修改,迁移都与应用程序代码一起存储
    无论迁移是如何生成的,都可以在设计时使用工具(
    updatedatabase
    命令)和/或在运行时应用迁移

    EF6支持和EF Core已经删除的是自动生成。EF核心迁移不能在运行时生成-它们必须在设计时生成并与应用程序代码一起存储

    在运行时应用它们是通过从某个应用程序启动点调用的
    Migrate
    方法实现的:

    dbContext.Database.Migrate();
    

    有关更多信息,请参阅和EF核心文档主题。

    Ah。我认为自动迁移指的是应用于数据库。我没有意识到它会在运行时自动创建迁移。我能够添加
    app.ApplicationServices.GetService().Database.Migrate()到我的
    Startup.Configure()
    函数,现在一切都好了。谢谢