Update-Database
__EFMigrationsHistory表的使用
执行第一次迁移时,会在数据库中创建__EMMigrationsHistory表。 此表用于跟踪应用于数据库的迁移。每次应用的迁移都会有添加一条记录信息。
要删除迁移,需要执行 Remove-Migration命令
它一次只删除一个迁移,并且仅删除尚未应用到数据库的最新迁移。如果有已应用迁移记录,强制执行 Remove-Migration 命令将引发以下异常。
The migration 'Latest_Migration_Name' has already been applied to the database. Revert it and try again.
删除已应用于数据库的迁移
让我们通过示例了解如何删除已应用于数据库的迁移。 假设我们已经将以下 3 个迁移应用于数据库。
Migration_One
Migration_Two
Migration_Three
我们要删除迁移 Migration_Two 和 Migration_Three。由于所有这 3 次迁移都已应用于数据库,因此执行Remove-Migration 命令将引发错误。
为了能够删除已应用于数据库的迁移,我们首先必须撤消迁移对数据库所做的更改。我们需要做的方法是执行带有迁移名称的 Update-Database 命令。
我们需要做的事情是首先要回滚Migration_Two和Migration_Three所做的更改,并且需要执行迁移记录 Migration_One 将数据库架构状态与当前需要回滚的领域模型状态一致。
为此,我们使用 Migration_One 名称执行 Update-Database 命令,如下所示。
Update-Database Migration_One
执行上述命令将撤消Migration_Two 和Migration_Three 所做的更改。EF Core 还将从数据库__EFMigrationsHistory 表中删除这两次迁移的记录。
但是,迁移代码文件仍存在于"Migrations"文件夹中。要删除代码文件,请使用 Remove-Migration 命令。由于我们要删除 Migration_Three 和 Migration_Two 代码文件,因此我们要执行两次 Remove-Migration 命令。
Remove-Migration Migration_Three
Remove-Migration Migration_Two
如果您觉得我的文章质量还不错,欢迎打赏,也可以订阅我的视频哦
未得到授权不得擅自转载本文内容,52abp.com 保留版权
感谢您对我的支持
关注微信公众号:角落的白板报