Efcore迁移

Add-Migration XX:
1、根据模型的实际结构对比当前快照,从而生成新迁移文件的Up和Down方法
2、根据模型的实际结构修改快照和新迁移文件
-----------------
Remove-Migration
一、我们定义:
1、最后一次的迁移文件,称为:A
2、倒数第二次的迁移文件,称为:B

二、判断:
1、快照和A是不同的:将快照恢复成A,结束
2、快照和A是相同的:删除A,将快照恢复成B,结束
-----------------
Update-Database
1、数据库__EFMigrationsHistory中MigrationId字段和迁移文件做对比
2、更新所有新于MigrationId字段的迁移
3、更新后的迁移不可Remove
4、如果要Remove已经更新的数据库操作,可以使用Update-Database XX指定恢复到哪个历史版本(请注意数据安全)

特殊情况:
一、如果不小心删除快照文件
1、先从他处复制一个空快照文件到项目中
2、执行Remove-Migration,可恢复快照文件到上次迁移的状态
(如有过模型修改,可再执行以下)
3、执行Add-Migration XX,生成新的迁移文件
4、Update-Database,执行更新

二、如果不小心手动删除迁移文件

第一种:

1、手动去数据库里修改对应结构
2、删除所有迁移和快照后,从此刻重新开始依赖迁移功能

第二种:

1、把模型的状态恢复到和数据库同步

2、删除所有的迁移文件和快照

3、执行Add-Migration XX,重新生成快照和迁移文件

4、手动删除XX文件

5、修改模型为最新版本

6、再一次执行Add-Migration XX,并Update-Database

所以,迁移文件和快照特别重要,在未更新本地开发数据和最终数据前,千万不要手动删除!
要清理迁移文件前,请三思三思再三思!

最新文章

  1. 深入理解java异常处理机制
  2. 【8-17】HTML测试
  3. mysql的ONLY_FULL_GROUP_BY语义 --转自http://www.wtoutiao.com/p/19dh3ec.html
  4. 基于Ubuntu虚拟机安装edx-platform
  5. a read only variable
  6. JDK中的Timer和TimerTask详解(zhuan)
  7. 动态调用webservice时 ServiceDescriptionImporter类在vs2010无法引用的解决方法
  8. NSAutoreleasePool' is unavailable: not avail
  9. Python 获取Facebook用户Friends的爱好类别中的Top10
  10. java ajax初始化
  11. JavaScript:inherits
  12. nodejs分离html文件里面的js和css
  13. C#的String.Split 分割字符串用法详解的代码
  14. [转] iOS9系统自带字体
  15. Android几种强大的下拉刷新库
  16. 【C++ Primer | 06】 函数
  17. [UE4]在蓝图中设置图片
  18. syslog、日志服务器安装、卸载详解、如何安装和卸载EventLog Analyzer
  19. [转]MySQL索引原理及慢查询优化
  20. excel 妙用选择性粘贴

热门文章

  1. Luogu P2148 [SDOI2009]E&D (sg函数 博弈)
  2. Find Peak Element II
  3. 60、springmvc-异步请求-返回Callable
  4. 将 Django 应用程序部署到生产服务器
  5. dp * 3
  6. 【算法】变邻域搜索算法(Variable Neighborhood Search,VNS)超详细一看就懂的解析
  7. 《MySQL数据分析实战》八句箴言前四句解析
  8. Spring家族主流成员介绍
  9. GC类型以及不同类型GC的搭配
  10. Access the value of a member expression