首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用__MigrationHistory在EF Core6中创建数据库

用__MigrationHistory在EF Core6中创建数据库
EN

Stack Overflow用户
提问于 2022-01-28 09:38:31
回答 1查看 142关注 0票数 2

我正在使用.NET核心6和EF核心6与一个现有的数据库。我们不得不对这个数据库做一些修改,所以我们引入了EF 6迁移。为了使它与初始数据库一起工作,我们必须创建一个空的初始创建。因此,当我们运行迁移脚本时,会添加新的列。

问题是:如何在本地机器上创建用于开发目的的初始数据库?

如果我用这种方法

代码语言:javascript
复制
var databaseCreator = (RelationalDatabaseCreator)dbContext.Database.GetService<IDatabaseCreator>();

await databaseCreator.CreateTablesAsync(cancellationToken);

表是创建的,但是没有迁移历史,因此后续迁移将失败。

如果我只是运行迁移

代码语言:javascript
复制
await context.Database.MigrateAsync(cancellationToken);

由于初始迁移是空的,所以不会创建这些表。

用迁移历史记录插入一个空数据库的正确方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-28 10:54:59

我自己解决这个问题的方法是根据当前模型(不是一个空迁移)生成一个完整的初始迁移,就像数据库还不存在一样。然后在一个新的本地数据库上调用MigrateAsync。这将将迁移插入到本地__MigrationHistory表中。然后将本地__MigrationHistory表中的该行插入到生产数据库的__MigrationHistory表中。

现在,您的生产数据库将跳过初始迁移,但是如果您需要它用于另一个数据库,则可以从头构建它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70891561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档