在 Remove-Migration 和 Update-Database 之后删除 .cs 迁移文件是否安全
Is it safe to delete a .cs migration file after Remove-Migration and Update-Database
为了学习如何在 .NET Core 中使用迁移,我创建了一个伪造的 class,做了一个 Add-Migration / Update-Database。然后我更改了伪造的 class 并做了另一个 Add-Migration / Update-Database。我两次使用 Remove-Migration / Update-Database 支持它们。一切都很好,我对它的工作方式更加满意table。
现在我只剩下 2 个伪造的迁移文件和相应的设计器文件以及伪造的 class。 我可以安全地删除所有这些吗?是否有一些协议可以永久删除它们?我检查过,他们在 _efmigrationhistory table 中的条目不见了。另外,我可能必须删除上下文文件中对 class 的引用。我还需要摆脱什么?
据我所知,删除这些文件是安全的。如果删除迁移文件,则基本设置完毕。
如果做得好,dotnet ef migration remove
命令应该会删除文件本身。如果不知何故这些文件没有被删除,您自己删除它们是安全的。
迁移的目的是增量更新数据库以匹配您的新数据模型,同时保留数据库的现有内容。
您甚至可以将其称为数据库版本控制的一种形式。例如,如果您进行了错误的迁移,您可以恢复到上次您满意的迁移table。
CLI > dotnet ef database update MigrationToReturnTo
PMC > Update-Database -Migration MigrationToReturnTo
因此,尽管您可以 安全地删除旧的迁移文件,但您可能会失去 return 到以前的迁移文件的能力数据库的架构。
请注意 Entity Framework Core 因迁移混乱而臭名昭著。我个人不建议删除迁移,除非您确定要进行完整的数据库重置。
如果您 运行 遇到由于记录已存在而无法更新数据库的问题,您最好的选择是完全删除您的迁移文件夹和 __EFMigrationsHistory
table ,并创建一个新的初始迁移。
为了学习如何在 .NET Core 中使用迁移,我创建了一个伪造的 class,做了一个 Add-Migration / Update-Database。然后我更改了伪造的 class 并做了另一个 Add-Migration / Update-Database。我两次使用 Remove-Migration / Update-Database 支持它们。一切都很好,我对它的工作方式更加满意table。
现在我只剩下 2 个伪造的迁移文件和相应的设计器文件以及伪造的 class。 我可以安全地删除所有这些吗?是否有一些协议可以永久删除它们?我检查过,他们在 _efmigrationhistory table 中的条目不见了。另外,我可能必须删除上下文文件中对 class 的引用。我还需要摆脱什么?
据我所知,删除这些文件是安全的。如果删除迁移文件,则基本设置完毕。
如果做得好,dotnet ef migration remove
命令应该会删除文件本身。如果不知何故这些文件没有被删除,您自己删除它们是安全的。
迁移的目的是增量更新数据库以匹配您的新数据模型,同时保留数据库的现有内容。
您甚至可以将其称为数据库版本控制的一种形式。例如,如果您进行了错误的迁移,您可以恢复到上次您满意的迁移table。
CLI > dotnet ef database update MigrationToReturnTo
PMC > Update-Database -Migration MigrationToReturnTo
因此,尽管您可以 安全地删除旧的迁移文件,但您可能会失去 return 到以前的迁移文件的能力数据库的架构。
请注意 Entity Framework Core 因迁移混乱而臭名昭著。我个人不建议删除迁移,除非您确定要进行完整的数据库重置。
如果您 运行 遇到由于记录已存在而无法更新数据库的问题,您最好的选择是完全删除您的迁移文件夹和 __EFMigrationsHistory
table ,并创建一个新的初始迁移。