如何在实体框架核心中重命名迁移

问题描述 投票:0回答:3

如何更改旧迁移的名称(重命名)?它与我的自定义身份用户的名称冲突。

更改身份用户会更容易吗?我也不知道如何重命名它,为了简单起见,每个教程都只是创建一个新的数据库(也欢迎任何有关此的信息)。

是不是像重命名那么简单:

  • 它是迁移.cs文件
  • 数据库迁移表
  • 快照

是这样吗?知道这是否会把事情搞砸吗?

entity-framework entity-framework-core
3个回答
8
投票

如果只是类名冲突,只需重命名类就足够了。

如果您真的想要重命名整个迁移,那么您的步骤看起来是正确的。确保检查

*.Designer.cs
文件以重命名包含该名称的字符串文字。


4
投票

自从我通过谷歌搜索到达这里以来,就实际问题的直接答案而言:

这并不只是重命名迁移文件那么简单。特别是如果迁移已经转移到客户端数据库的话。

我发现 EF 仍然在某处记住旧迁移的名称,并且即使在重命名迁移文件、设计器文件和类名之后,最终仍然将旧名称插入到

__EFMigrationsHistory
表中。

对我来说,将 Up 和 Down 方法中的所有代码复制到记事本中更容易,使用

remove-migration
删除错误命名的迁移,然后使用
add-migration
添加具有所需名称的新迁移并复制回我保存的记事本中的所有代码。但是,这仅在迁移是最新迁移时才有效。

如果它是旧的,已经出到客户端数据库,或者被其他迁移取代,您将不得不担心以某种方式手动更新

__EFMigrationsHistory
表以及 EF 对迁移名称的记忆(无论它在哪里),这可能会变得非常棘手.


0
投票

要成功重命名迁移文件,您需要执行两个步骤:

首先,重命名迁移文件。

其次,打开 .Designer.cs 文件并更新迁移名称([Migration("要更改的重命名的迁移")])。 完成这些步骤后,运行 update-database 命令。

© www.soinside.com 2019 - 2024. All rights reserved.