如何自动化的实体模型修改数据库部署?(How to automate deployment of e

2019-09-23 14:17发布

目前我使用Visual Studio数据库项目,这样我就可以点击部署更改数据库和数据保存在数据库中。

现在,我希望能够在实体框架创建模型和点击部署。

所以,我的SQL脚本,从实体框架创建数据库。 我可以运行此脚本来创建数据库,但我想保持我的数据在数据库中。

有没有办法做到这一点? 任何工具,将做到这一点? 我应该产生它在我自己用T4?

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

Answer 1:

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

如果你需要一些建模工具支持,那么电力架构师可以使用liquibase 。

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

  • 演进的数据库设计
  • 版本控制下获取数据库

更新

创建一个名为liquibase.properties以存放数据库的详细信息:

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对现有的数据库,你可以运行下面的命令:

liquibase generateChangeLog
liquibase changelogSync

第一个命令将创建一个XML文件称为包含所提取的数据模型数据库changelog.xml。
如果要应用到当前数据库的新变化第二个命令是可选的,但是很有用。 在数据库中已经执行它标志着中提取的变更。

现在,你有一个起点,就可以进行新的变更添加到数据库changelog.xml文件。 要应用这些新的变化只需要运行下面的命令:

liquibase update

这是你使用全新的数据库相同的命令。 在更新操作liquibase将XML文件已经应用到目标数据库的变更在比较的变更。

对于更高级的usecases我建议您阅读liquibase文档和以下的答案也可能有帮助:

  • 比较数据库和使用liquibase genrating sql脚本


Answer 2:

为了能够生成实体框架模型的Visual Studio数据库项目你需要安装实体设计数据库生成电源组

您需要将数据库项目添加到您的解决方案,然后创建EDMX 具有相同名称的模型。 然后右键单击工作区EDMX并选择模式 ,并从代菜单同步数据库项目 生成数据库

然后,您可以部署在Visual Studio到SQL Server这个SQL项目。



文章来源: How to automate deployment of entity model changes to database?