【问题标题】:How to add EF Core Migrations to existing db when you have no __EFMigrationsHistory table?没有 __EFMigrationsHistory 表时如何将 EF Core 迁移添加到现有数据库?
【发布时间】:2022-11-04 15:27:10
【问题描述】:

我有一个现有的数据库在生产中,以前没有参与过 EF 迁移。因此,它缺少 __EFMigrationsHistory 表。

我正在执行以下操作:

  • 调用Add-Migration InitialCreate
  • 运行应用程序
  • 停止应用程序
  • 将我的修改添加到模型中
  • 调用Update-Database
  • 得到错误Microsoft.Data.SqlClient.SqlException (0x80131904):数据库中已经有一个名为“sometablename”的对象。

我假设发生这种情况是因为没有迁移历史记录,并且它试图从头开始创建所有内容。

如何将迁移添加到以前未使用过的数据库?

【问题讨论】:

    标签: c# .net visual-studio entity-framework entity-framework-core


    【解决方案1】:
    1. 如果您确定您的 EF 模型与现有数据库的模型匹配,则可以手动创建迁移历史记录表并为与现有数据库模型匹配的迁移添加行条目。
    2. 如果您有一个大型数据库,您将很难确认数据库模型与您的新 EF 模型匹配。您将必须创建一个新数据库,在新数据库上运行迁移并将数据表逐个表从旧表导出到新表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      • 1970-01-01
      • 2021-01-16
      • 2018-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多