2

目前我使用 Visual Studio 数据库项目,所以我可以一键部署对数据库的更改并将数据保存在数据库中。

现在我希望能够在实体框架中创建模型并一键部署。

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

有什么办法吗?有什么工具可以做到这一点?我应该使用 T4 自己生成它吗?

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

4

2 回答 2

2

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

如果您需要一些建模工具支持,那么 Power 架构师可以与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

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

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

于 2012-10-05T19:30:17.223 回答
0

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

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

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

于 2012-10-06T23:58:46.807 回答