博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EF架构~CodeFirst生产环境的Migrations
阅读量:6856 次
发布时间:2019-06-26

本文共 1878 字,大约阅读时间需要 6 分钟。

Migrations即迁移,它是EF的code first模式出现的产物,它意思是说,将代码的变化反映到数据库上,这种反映有两种环境,一是本地开发环境,别一种是服务器的生产环境,本地开发环境主要使用包管理工具的update-database即可完成数据库的迁移(变更),而在生产环境就显得麻烦一些,因为你不会在生产环境放程序源代码和VS开发工具,哈哈.

本地数据库迁移请看我的这篇文章

服务器上生产环境的数据迁移

如果我们有迁移文件如下

public partial class manager : DbMigration    {
  ///         /// 要在升级过程中执行的操作。         /// public override void Up() { DropForeignKey("dbo.WebDataSettings", "WebDataCtrlId", "dbo.WebDataCtrls"); DropForeignKey("dbo.WebDataSettings", "DepartmentId", "dbo.WebDepartments"); RenameColumn(table: "dbo.WebDataSettings", name: "DepartmentId", newName: "WebDepartmentsId"); RenameIndex(table: "dbo.WebDataSettings", name: "IX_DepartmentId", newName: "IX_WebDepartmentsId"); AddForeignKey("dbo.WebDataSettings", "WebDataCtrlId", "dbo.WebDataCtrls", "ID", cascadeDelete: true); AddForeignKey("dbo.WebDataSettings", "WebDepartmentsId", "dbo.WebDepartments", "ID", cascadeDelete: true); } ///         /// 要在降级过程中执行的操作。         /// public override void Down() { DropForeignKey("dbo.WebDataSettings", "WebDepartmentsId", "dbo.WebDepartments"); DropForeignKey("dbo.WebDataSettings", "WebDataCtrlId", "dbo.WebDataCtrls"); RenameIndex(table: "dbo.WebDataSettings", name: "IX_WebDepartmentsId", newName: "IX_DepartmentId"); RenameColumn(table: "dbo.WebDataSettings", name: "WebDepartmentsId", newName: "DepartmentId"); AddForeignKey("dbo.WebDataSettings", "DepartmentId", "dbo.WebDepartments", "ID"); AddForeignKey("dbo.WebDataSettings", "WebDataCtrlId", "dbo.WebDataCtrls", "ID"); } }

在本地VS中执行下面命令,它将生产迁移计划,即SQL语句

Update-Database -Script -SourceMigration: $InitialDatabase -TargetMigration:manage

它将生成对应的SQL脚本,我们在服务器上运行即可

幂等性

Migration生成的SQL脚本是幂等的,即,当你多次执行SQL脚本时,产生的结果是一样的,不对有负作用.

转载地址:http://oayyl.baihongyu.com/

你可能感兴趣的文章
微控制器和微处理器市场持续增长
查看>>
python的Web框架,Django模型系统二,模型属性,及数据库进阶查询 ...
查看>>
sysbench、iostat测试服务器的iops
查看>>
好程序员Web前端开发入门之网页制作三要素
查看>>
美国要认输?美国防部称或将在5G竞赛中落后中国 ...
查看>>
常用JVM参数解释
查看>>
python 指定日期图片文件删除
查看>>
在阿里云云服务器上发布自己的网站(建站|详细) ...
查看>>
Spring Boot中CrudRepository与JpaRepository
查看>>
组复制官方翻译八、Frequently Asked Questions
查看>>
使用树莓派和Python实现目标检测
查看>>
深入理解Java虚拟机阅读心得(二)
查看>>
大数据学习一般学什么
查看>>
sysbench测试mysql的QPS值
查看>>
基于AWS的电子商务网站架构——营销与推荐服务 ...
查看>>
新手上云
查看>>
mysql数据库使用insert语句插入中文数据报错
查看>>
案例-站狼云品智美站助力必信空调中国制造领先品牌
查看>>
ubuntu修改mysql的大小写不敏感
查看>>
为什么屠呦呦获得了诺贝尔奖却没被评上中科院院士?
查看>>