目前我使用Visual Studio数据库项目,这样我就可以点击部署更改数据库和数据保存在数据库中。
现在,我希望能够在实体框架创建模型和点击部署。
所以,我的SQL脚本,从实体框架创建数据库。 我可以运行此脚本来创建数据库,但我想保持我的数据在数据库中。
有没有办法做到这一点? 任何工具,将做到这一点? 我应该产生它在我自己用T4?
我用CI所以我需要能够经常部署。 我想类似于Visual Studio数据库项目部署的东西,但随着实体框架生成的数据库。
目前我使用Visual Studio数据库项目,这样我就可以点击部署更改数据库和数据保存在数据库中。
现在,我希望能够在实体框架创建模型和点击部署。
所以,我的SQL脚本,从实体框架创建数据库。 我可以运行此脚本来创建数据库,但我想保持我的数据在数据库中。
有没有办法做到这一点? 任何工具,将做到这一点? 我应该产生它在我自己用T4?
我用CI所以我需要能够经常部署。 我想类似于Visual Studio数据库项目部署的东西,但随着实体框架生成的数据库。
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文档和以下的答案也可能有帮助:
为了能够生成实体框架模型的Visual Studio数据库项目你需要安装实体设计数据库生成电源组 。
您需要将数据库项目添加到您的解决方案,然后创建EDMX 具有相同名称的模型。 然后右键单击工作区EDMX并选择模式 ,并从代菜单同步数据库项目 生成数据库 。
然后,您可以部署在Visual Studio到SQL Server这个SQL项目。