繁体   English   中英

EF6代码优先更新数据库,不删除数据

[英]EF6 Code First update-database without deleting data

我正在尝试使用在实体模型中所做的更改(一些额外的表列)来更新数据库,但是我不想删除并重新创建数据库,因为它将删除所有测试数据。 以前,我已经做到了这一点,并使用Seed方法创建了一些基本数据,但是现在我有很多我希望保留的数据。

我尝试运行更新数据库,但出现错误:

There is already an object named 'ActivityNoteLines' in the database.

查看迁移脚本,我可以看到它正在尝试创建表ActivityNoteLines。 显然,我不希望如此。 然后,我使用创建了一个初始迁移

Add-Migration InitialCreate –IgnoreChanges

但是现在当我运行update-database时,它认为没有变化!

我确定可以做我想做的事,但我似乎无法使其工作。 如果必须删除并重新创建数据库,我将但想知道是否有人成功更新并保留了数据。

您遇到的问题是,“迁移”文件夹中的“创建”脚本想要创建所有表。 运行Update时,它会查看表dbo.MigrationHistory以查看已运行的迁移脚本。 您的数据库在表中没有创建,因此Update试图运行它。

您可以尝试将条目手动添加到表中,也可以编辑创建脚本并清除up和down方法的内容。 然后,当您运行update时,它将运行创建脚本,该脚本将不执行任何操作,并将条目写入MigrationHistory表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM