写点什么

使用 Code First Migrations 依据代码更新数据库结构

  • 2011-12-08
  • 本文字数:811 字

    阅读完需:约 3 分钟

ADO.NET 团队最近发布了 Code First Migrations Beta 1 for Entity Framework (EF)。该程序包已经在 NuGet 提供,位于 EntityFramework.Migrations 名称下。

应用程序开发领域中的代码先行(Code First)方法指的是先在代码中创建对象模型,然后按照模型生成数据库结构。这与“模型先行开发”类似,那种方式会使用 Visual Studio 中的 EF 设计器创建数据模型。(想要查看代码先行开发方式的实际效果,你可以访问 ADO.NET 团队的 EF 4.2 代码先行演练。)

Code First Migrations 这种工具可以基于代码中所做的改变,以递增的方式更新已存的数据库结构。这可以按照自动或者手动的方式进行(微软将其称之为“带有魔力的”和“没有魔力的”迁移),采用哪种方式依赖于对模型所做出的更新的类型。能够自动完成的变更类型有:

  • 增加属性或者类
  • 对属性和类重命名(想要使其正常工作,需要编写一些脚本)
  • 对列(column)或者表(table)重命名,而不对属性或类重命名
  • 删除属性

在任何一种情况下,执行命令 Update-Database 就会自动把变更应用到数据库结构上。

对于所有其它更新,Code First Migrations 会使用 Add-Migration 命令创建变更数据库的脚本。这些迁移操作都会保存,并加上时间戳,让我们可以回滚到数据库结构的上一个版本。除了能够对数据库结构做出变更之外,迁移操作中还可以包括用于操作数据的 SQL 命令。想要提交迁移操作,你只需要再次运行 Update-Database 命令。为了对数据库进行复制,Code First Migrations 也可以使用 Update-Database 来创建 SQL 脚本:

Update-Database –TargetDatabase:"NewDatabase" –Script

ADO.Net 团队已经提供了使用 Code First Migrations 的“没有魔力”“具有魔力的”两种方法的演练,你可以从中获得更多信息。

微软声称,这个beta 版本只包含了Code First Migrations 的Visual Studio 实现,他们计划还要引入命令行和MSDeploy 的版本。

查看英文原文: Code First Migrations Updates Data Structure From Code

2011-12-08 01:293261
用户头像

发布了 340 篇内容, 共 131.6 次阅读, 收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

TIDB br 备份 PermissionDenied

TiDB 社区干货传送门

分区的现状与未来规划

TiDB 社区干货传送门

DM运维踩坑实践总结

TiDB 社区干货传送门

DM 2.0 小试牛刀

TiDB 社区干货传送门

热烈庆祝58同城TiDB All in v4.0.2(附核心PMC订单流水业务升级流程和一点使用感悟)

TiDB 社区干货传送门

TiKV 开发环境单机部署

TiDB 社区干货传送门

SQL上线引发的血案

TiDB 社区干货传送门

TiFlash运维漫谈

TiDB 社区干货传送门

pd-recovery后部分tikv连接pd失败

TiDB 社区干货传送门

TiDB 3.0.1 与 3.0.2 版本的 TiKV 宕机对比测试

TiDB 社区干货传送门

TiDB 3.0.2 版本某业务 TiKV 宕机测试

TiDB 社区干货传送门

社区资源这么丰富我们怎么抄作业

TiDB 社区干货传送门

TiDB DM扩容和监控

TiDB 社区干货传送门

Node_export端口变更

TiDB 社区干货传送门

漫谈TiDB收费与成本

TiDB 社区干货传送门

TIDB备份引发公司所有TIDB集群不可用

TiDB 社区干货传送门

TiDB 集群 TiKV 节点内存占用较高问题排查

TiDB 社区干货传送门

故障排查/诊断

TiDB-Lighting 迁移过程问题整理

TiDB 社区干货传送门

原生K8s环境下 TiDB Operator实战

TiDB 社区干货传送门

TiDB 集群跨平台在线迁移方案(离线环境下从 x86 节点迁移到 arm64 节点)

TiDB 社区干货传送门

管理与运维

TiDB 集群跨平台在线迁移方案(离线环境下从 x86 节点迁移到 arm64 节点)

TiDB 社区干货传送门

管理与运维

TiDB + HAProxy 配置透传 IP

TiDB 社区干货传送门

TiDB 4.0 新 Feature 原理及实践系列合集

TiDB 社区干货传送门

TiDB 在车好多的实践

TiDB 社区干货传送门

一个重大的突破领先于市场同类分布式DB产品

TiDB 社区干货传送门

周五的暴击:TiKV 节点宕机无法正常启动之后

TiDB 社区干货传送门

伴鱼数据库之性能大盘

TiDB 社区干货传送门

都是空格惹的祸

TiDB 社区干货传送门

TiDB 入门运维基础视频教程 (三) -- 导出工具 dumpling

TiDB 社区干货传送门

TiDB 入门运维基础视频教程 (四) -- 导入工具 Lightning

TiDB 社区干货传送门

TiDB监控信息反向代理配置(一个域名可跳转不同集群)

TiDB 社区干货传送门

使用Code First Migrations依据代码更新数据库结构_.NET_Jenni Konrad_InfoQ精选文章