首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何自动将实体模型更改部署到数据库?

如何自动将实体模型更改部署到数据库?
EN

Stack Overflow用户
提问于 2012-10-05 21:06:31
回答 2查看 2.3K关注 0票数 2

目前我使用的是Visual Studio数据库项目,因此我可以一键将更改部署到数据库中,并将数据保留在数据库中。

现在,我希望能够在Entity Framework中创建模型,并只需单击一下即可部署。

所以我得到了sql脚本来从实体框架创建数据库。我可以运行这个脚本来创建数据库,但我想将我的数据保存在数据库中。

有没有办法做到这一点?有没有能做到这一点的工具?我应该用T4自己生成它吗?

我使用CI,所以我需要能够经常部署。我想要一些类似于Visual Studio数据库项目部署,但与实体框架生成的数据库。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-07 07:58:47

为了能够从实体框架模型生成Visual Studio数据库项目,您需要安装Entity Designer数据库生成Power Pack

您需要将数据库项目添加到解决方案中,然后创建同名为的edmx模型。然后右键单击edmx工作区,选择Generate Database from Model,并从generation菜单中选择Sync Database Project。

然后,可以将此Sql项目从Visual Studio部署到Sql Server。

票数 0
EN

Stack Overflow用户

发布于 2012-10-06 03:30:17

Liquibase是一个数据库变更管理工具。它是用Java语言实现的,但是有一个命令行版本可以用来控制数据库升级(.NET版本正在开发中)。

如果你需要一些建模工具的支持,那么Power architect可以和liquibase一起使用。

与管理数据库模式升级相关的问题是微妙的。对于一些背景阅读,我建议:

  • Evolutionary Database Design
  • Get your database under version control

更新

创建一个名为liquibase.properties的文件来保存数据库详细信息:

代码语言:javascript
复制
url=jdbc:sqlserver://localhost:1433;databaseName=test
username=myuser
password=mypass
driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
classpath=C:\\Program Files\\Microsoft SQL Server 2005 JDBC Driver\\sqljdbc_1.2\\enu\\sqljdbc.jar
changeLogFile=database-changelog.xml

在对现有数据库使用liquibase时,可以运行以下命令:

代码语言:javascript
复制
liquibase generateChangeLog
liquibase changelogSync

第一个命令将创建一个名为database-changelog.xml的XML文件,其中包含提取的数据模型。

第二个命令是可选的,但如果要将新的更改应用于当前数据库,则该命令很有用。它将提取的变更集标记为已在数据库中执行。

现在您有了一个起点,可以继续向database-changelog.xml文件添加新的变更集。要应用这些新更改,只需运行以下命令:

代码语言:javascript
复制
liquibase update

这与您对全新数据库使用的命令相同。在update操作期间,liquibase会将XML文件中的变更集与已应用于目标数据库的变更集进行比较。

对于更高级的用例,我建议阅读liquibase文档,下面的答案也可能会有所帮助:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12746908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档