从具有空的MigrationHistory表的现有生产数据库迁移Entity Framework

用户名

我有一个下载的生产数据库,其中有一个空的MigrationHistory表(内容被意外删除)。

我的开发环境中有一个更新的代码模型(没有以前的迁移)。

换句话说,下载的生产数据库模式和开发环境代码模型之间不匹配-并且它们之间没有历史记录。

如何构建代码优先迁移(或获取SQL)以将生产数据库更新为新模型?

根据这里的建议,我尝试了以下方法

  1. 在我的项目中启用迁移(Enable-Migrations
  2. 添加一个空迁移(Add-Migration InitialCreate -IgnoreChanges
  3. 应用此迁移(Update-Database

这导致将一行添加到MigrationHistory表中。

但是,EF似乎认为这意味着当前的代码模型与数据库模式匹配(当然不匹配)。

如果我尝试添加一个新的迁移(Add-Migration UpdatedModel),则此迁移将为空,由于代码模型和数据库不匹配,因此不应迁移。

如何获得代码优先的迁移(或SQL)以反映代码模型与数据库模式之间的变化?(如果我尝试Add-Migration InitialCreate不带-IgnoreChanges标志,那么我将从头开始创建整个数据库,正确地反映了代码模型,但是我想要更改。)

乔塔贝

您要遵循的指南的第一步清楚地表明,您需要一个与数据库同步的模型。那真是失败了。

您需要做的是:

  1. 暂时删除当前的“代码优先”模型(即,将当前模型的文件备份到某处:文件系统,CVS)
  2. 对现有数据库中的代码优先模型进行反向工程
  3. 启用迁移,并创建初始迁移: Enable-Migrations

在此步骤中,您的数据库和模型已同步。再执行几步,您就可以开始了:

  1. 用原始模型替换模型(您在上一步1中保留的模型)
  2. 添加新的迁移 Add-Migration
  3. 更新您的数据库: Update-Database

chan!知道了!顺便说一句,了解迁移命令的每个参数很重要,为此,请在Package Manager控制台中使用以下任何命令:

  • get-help Enable-Migrations -examples
  • get-help Enable-Migrations -detailed
  • get-help Enable-Migrations -full

简而言之:启用迁移时,Code First模型和数据库必须匹配,没有其他方法可以做到。这就是为什么您必须对数据库进行反向工程以获取初始同步并从此开始工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

折叠所有现有的Entity Framework迁移的最佳方法是什么

来自分类Dev

在Entity Framework 6中仅将现有数据库映射到现有POCO,而无需设计器或CodeFirst

来自分类Dev

每次Entity Framework数据库迁移后如何访问上下文

来自分类Dev

无法使用Entity Framework代码优先+没有数据库创建数据库

来自分类Dev

MVC 5 Entity Framework 6项目,首先具有数据库,ViewBag,用于外键和数据绑定的下拉菜单

来自分类Dev

使用MigrationHistory检测Entity Framework模型对于数据库而言是否过旧

来自分类Dev

首先将表添加到Entity Framework数据库中的数据库

来自分类Dev

在MVC中使用Entity Framework Code First更新现有数据库

来自分类Dev

具有ORM的Slim Framework(雄辩)连接多个数据库

来自分类Dev

具有配置的类库中的Entity Framework 7迁移脚手架

来自分类Dev

如何使用Powershell在远程数据库上运行Entity Framework 7迁移?

来自分类Dev

在Entity Framework Core中为所有数据库创建和应用迁移

来自分类Dev

在应用程序启动时使用Entity Framework核心运行数据库迁移

来自分类Dev

有什么方法可以直接查询Entity Framework Core使用的内存数据库?

来自分类Dev

如何使用Entity Framework代码优先从数据库中删除所有相关实体

来自分类Dev

没有使用Entity Framework Core 3.1在MySql数据库中创建User表(代码优先方法)

来自分类Dev

如何将Entity Framework Core数据库测试为具有大量行插入功能的InMemory

来自分类Dev

Java是否具有与.Net Framework和Entity Framework类似的迁移工具

来自分类Dev

折叠所有现有的Entity Framework迁移的最佳方法是什么

来自分类Dev

在Entity Framework 6中无需设计器或CodeFirst即可将现有数据库仅映射到现有POCO

来自分类Dev

使用MigrationHistory检测Entity Framework模型对于数据库而言是否过旧

来自分类Dev

首先将表添加到Entity Framework数据库中的数据库

来自分类Dev

我无法在Entity Framework 6.1.2迁移中指定数据库名称

来自分类Dev

Entity Framework 6.1.2中基于代码的数据库迁移:如何避免使用powershell命令?

来自分类Dev

在Entity Framework查询期间修改数据库表

来自分类Dev

在Entity Framework Core中为所有数据库创建和应用迁移

来自分类Dev

在应用程序启动时使用Entity Framework核心运行数据库迁移

来自分类Dev

如何避免先使用Entity Framework代码和现有数据库进行迁移?

来自分类Dev

使用动态数据库连接在 Entity Framework Core 中添加迁移

Related 相关文章

  1. 1

    折叠所有现有的Entity Framework迁移的最佳方法是什么

  2. 2

    在Entity Framework 6中仅将现有数据库映射到现有POCO,而无需设计器或CodeFirst

  3. 3

    每次Entity Framework数据库迁移后如何访问上下文

  4. 4

    无法使用Entity Framework代码优先+没有数据库创建数据库

  5. 5

    MVC 5 Entity Framework 6项目,首先具有数据库,ViewBag,用于外键和数据绑定的下拉菜单

  6. 6

    使用MigrationHistory检测Entity Framework模型对于数据库而言是否过旧

  7. 7

    首先将表添加到Entity Framework数据库中的数据库

  8. 8

    在MVC中使用Entity Framework Code First更新现有数据库

  9. 9

    具有ORM的Slim Framework(雄辩)连接多个数据库

  10. 10

    具有配置的类库中的Entity Framework 7迁移脚手架

  11. 11

    如何使用Powershell在远程数据库上运行Entity Framework 7迁移?

  12. 12

    在Entity Framework Core中为所有数据库创建和应用迁移

  13. 13

    在应用程序启动时使用Entity Framework核心运行数据库迁移

  14. 14

    有什么方法可以直接查询Entity Framework Core使用的内存数据库?

  15. 15

    如何使用Entity Framework代码优先从数据库中删除所有相关实体

  16. 16

    没有使用Entity Framework Core 3.1在MySql数据库中创建User表(代码优先方法)

  17. 17

    如何将Entity Framework Core数据库测试为具有大量行插入功能的InMemory

  18. 18

    Java是否具有与.Net Framework和Entity Framework类似的迁移工具

  19. 19

    折叠所有现有的Entity Framework迁移的最佳方法是什么

  20. 20

    在Entity Framework 6中无需设计器或CodeFirst即可将现有数据库仅映射到现有POCO

  21. 21

    使用MigrationHistory检测Entity Framework模型对于数据库而言是否过旧

  22. 22

    首先将表添加到Entity Framework数据库中的数据库

  23. 23

    我无法在Entity Framework 6.1.2迁移中指定数据库名称

  24. 24

    Entity Framework 6.1.2中基于代码的数据库迁移:如何避免使用powershell命令?

  25. 25

    在Entity Framework查询期间修改数据库表

  26. 26

    在Entity Framework Core中为所有数据库创建和应用迁移

  27. 27

    在应用程序启动时使用Entity Framework核心运行数据库迁移

  28. 28

    如何避免先使用Entity Framework代码和现有数据库进行迁移?

  29. 29

    使用动态数据库连接在 Entity Framework Core 中添加迁移

热门标签

归档