Microsoft Doc]
EF Core 中的迁移功能能够以递增方式更新数据库架构,使其与应用程序的数据模型保持同步,同时保留数据库中的现有数据。
迁移包括命令行工具和 API,可帮助执行以下任务:
- 生成可以更新数据库以使其与一系列模型更改同步的代码。
- 应用挂起的迁移更新数据库架构。
- 有时,需要修改或补充生成的代码。
- 删除生成的代码。
- 撤消数据库更改。(sqlite不支持表和字段的重命名等给还原带来很多问题)
- 可能需要一个脚本来更新生产数据库,或者对迁移代码进行故障排除。
- 当设计时更新和正在运行脚本不是最佳选项时,调用
Migrate()方法。
创建迁移
Add-Migration InitialCreate
.Net Core CLI-> dotnet ef migrations add InitialCreate
更新数据库
PowerShell-> Update-Database
.Net Core CLI-> dotnet ef database update
自定义迁移代码
PowerShell-> Add-Migration AddProductReviews
.Net Core CLI-> dotnet ef migrations add AddProductReviews
修改迁移基架中的代码,然后更新数据库。
空迁移
可能需要通过此方式管理的一些事项包括:
- 全文搜索
- 函数
- 存储过程
- 触发器
- 视图
删除迁移
PowerShell-> Remove-Migration
.Net Core CLI-> dotnet ef migrations remove
还原迁移
PowerShell-> Update-Database LastGoodMigration
.Net Core CLI-> dotnet ef database update LastGoodMigration
PowerShell-> Script-Migration
.Net Core CLI-> dotnet ef migrations script
在运行时应用迁移
myDbContext.Database.Migrate();