Code First模型和新版本软件的部署

时间:2012-05-03 23:47:08

标签: deployment entity-framework-4 code-first database-first

我正在查看实体框架并使用Code First示例。到目前为止,我可以看到框架不能轻松处理模型更改:每当我想将另一个字段添加到类/表时,框架就会删除整个数据库并从头开始创建它。

我在(N)Hibernate中看到的类似行为。 (我可能在这里错了,很久以前)

没关系,只要我在教程上工作。当涉及到真实项目时,每次需要在表中使用新字段时,都无法删除数据库。

想象一下场景,你正在开发一个有很多客户的项目。每个客户都有自己的数据库。在1.0.1版中,我需要在其中一个表中添加一个新字段。如果我在我的开发环境中删除数据库 - 没什么大不了的。 (尽管如此,我还是需要运行一个脚本来在每次删除数据库时填充测试数据,有时甚至这是不可行的)

但是当我需要部署这个新版本时我该怎么办?制作一个SQL脚本来更新客户端的数据库而不丢弃它们?然后部署二进制文件?

但是,如果将数据库mod与代码更改分开,这有什么用呢?

1 个答案:

答案 0 :(得分:3)

(抱歉我的英语不好)

这正是Code First Migrations存在的原因。看一看here (automatic migrations)here (code-based migrations)