【问题标题】:How to create incremental scripts to update database schemas using Visual Studio 2010?如何使用 Visual Studio 2010 创建增量脚本来更新数据库架构?
【发布时间】:2011-05-05 11:17:51
【问题描述】:

我正在尝试使用 VS 2010 Sql Server 数据库项目来跟踪对我的数据库所做的更改,并在需要将更改从开发环境部署到生产环境时生成适当的脚本。

我已经在我的开发数据库和项目架构之间创建了架构比较,效果很好。但是,我找不到创建增量脚本的方法,我得到的唯一东西是带有 CREATE 语句的脚本(导出到编辑器选项)。

我做错了吗?

提前致谢。

【问题讨论】:

    标签: visual-studio-2010 database-project


    【解决方案1】:

    作为我们自动构建过程的一部分,我们将每个环境的 .dbschema 文件存储在源代码控制中。在构建过程中,我们基于数据库项目创建 .dbschema 文件,然后使用 vsdbcmd 命令行调用生成项目架构和每个目标数据库架构之间的更改脚本。如果您需要特定的命令行调用,请告诉我。

    【讨论】:

      【解决方案2】:

      如果您正确使用“Data Dude”,这些操作会为您完成并在您选择 Deploy 时运行。只需将您的架构(表、存储过程、填充脚本等)保留为项目项并根据需要进行更改。构建和部署过程将生成脚本。如果您想获取这些脚本并自己针对各种暂存、生产等数据库运行它们,http://msdn.microsoft.com/en-us/library/ff678491.aspx 是一个不错的起点。

      【讨论】:

      • 如果我拥有对 prod 数据库的系统管理员访问权限,但我没有。这就是为什么我在部署后使用 VS 项目来存储数据库状态的原因。因此,当我们想要部署更改时,我们会将当前数据库状态与项目中存储的内容进行比较并生成脚本。问题是我没有只创建 ALTER 脚本。
      【解决方案3】:

      .deploymentmanifest 文件中有两个设置:

      <DeployToDatabase>False</DeployToDatabase>

      <DeployToScript>True</DeployToScript>

      然后运行 ​​vsdbcmd 将生成更改脚本,而不会影响目标数据库。您只需要一个与生产版本相同的数据库版本,或者在生产中访问指向 vsdbcmd 以生成脚本。

      【讨论】:

      • 您能否确认有一种方法可以使vsdbcmd 生成ALTER 语句(而不是CREATE 语句)。我强烈怀疑没有。
      猜你喜欢
      • 1970-01-01
      • 2011-03-21
      • 1970-01-01
      • 2014-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-19
      • 1970-01-01
      相关资源
      最近更新 更多