.net-core - 如何在不实际在 EF Core 中运行迁移的情况下将记录添加到 __EFMigrationsHistory
问题描述
我有一个问题,我有一个现有的数据库,我只映射了某些实体以与 EF Core 一起使用(数据库有 100 个表,我不想要所有这些表。
我像这样搭建了起始阶段
dotnet ef dbcontext scaffold .. etc etc
我用连接字符串指定了特定的表。
然后我创建了一个初始迁移来快照开始阶段
dotnet ef migrations add Initial
我现在想添加一个基于新实体的新表。所以我创建了第二个迁移使用
dotnet ef migrations add NewTable
但是当我运行这个使用..
dotnet ef database update NewTable
它尝试在初始迁移中添加表!因为我还没有进行迁移,所以我在 __EFMigrationsHistory 中没有记录。但是我不想运行第一次迁移,因为我已经有了脚手架的表!Initial 只是创建一个快照,这是我认为你必须做的。
那么有没有办法让它认为 Initial 已经运行?通过在 __EFMigrationsHistory 中添加一些内容?然后我可以运行 NewTable 迁移而不会得到“对象已经存在”。
谢谢
解决方案
在我删除前一个迁移后,它运行我最新的 NewTable 迁移正常,否则它仍在尝试从初始迁移中添加对象,导致“对象已存在”。
我觉得这很奇怪,因为语句 'dotnet ef database update NewTable' 指定了我想要运行的迁移,并且不应该再次运行初始。无论如何,这个修复工作正常。
推荐阅读
- python - 带有条件python的部分填充
- java - Repast Simphony:关闭批处理运行中的数据收集
- flutter - 安装 msix 后,Flutter Windows 桌面应用程序卡在白屏上
- c - 如何在 C 中对十六进制数字(如 10 1 AB)进行排序?
- intellij-idea - 场景生成器中的奇怪角色
- python - 如何找出存储 1 到 2^100 之间的每个数字需要多少存储空间?
- python-3.x - 为什么我从 python3 中的请求中得到空的 RequestCookieJar?
- docker - Docker 守护程序未运行或来自 docker 守护程序的错误响应
- git - PhpStorm 添加冲突文件
- android - 联系人服务:等待 ContactsService.getContacts() 太慢了