目前我使用的是Visual Studio数据库项目,因此我可以一键将更改部署到数据库中,并将数据保留在数据库中。
现在,我希望能够在Entity Framework中创建模型,并只需单击一下即可部署。
所以我得到了sql脚本来从实体框架创建数据库。我可以运行这个脚本来创建数据库,但我想将我的数据保存在数据库中。
有没有办法做到这一点?有没有能做到这一点的工具?我应该用T4自己生成它吗?
我使用CI,所以我需要能够经常部署。我想要一些类似于Visual Studio数据库项目部署,但与实体框架生成的数据库。
发布于 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。
发布于 2012-10-06 03:30:17
Liquibase是一个数据库变更管理工具。它是用Java语言实现的,但是有一个命令行版本可以用来控制数据库升级(.NET版本正在开发中)。
如果你需要一些建模工具的支持,那么Power architect可以和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第一个命令将创建一个名为database-changelog.xml的XML文件,其中包含提取的数据模型。
第二个命令是可选的,但如果要将新的更改应用于当前数据库,则该命令很有用。它将提取的变更集标记为已在数据库中执行。
现在您有了一个起点,可以继续向database-changelog.xml文件添加新的变更集。要应用这些新更改,只需运行以下命令:
liquibase update这与您对全新数据库使用的命令相同。在update操作期间,liquibase会将XML文件中的变更集与已应用于目标数据库的变更集进行比较。
对于更高级的用例,我建议阅读liquibase文档,下面的答案也可能会有所帮助:
https://stackoverflow.com/questions/12746908
复制相似问题