数据库更改管理软件补丁/更新/升级

时间:2009-02-12 20:36:31

标签: visual-studio-2008 deployment change-management

我花了几周的时间试图找到更详细的解释,并举例说明如何在软件补丁上管理我的数据库更改。

情况:

  • 我将wpf应用程序版本部署到 用户。 App使用MSSQL数据文件 存储应用程序的数据(使用客户端配置文件部署和SqlServer Compact 3.5先决条件)
  • 在进一步开发数据库架构更改中,我添加了一些额外的 数据也是
  • 我正试图跑一个 使用Visual进行补丁/次要/主要升级 Studio 2008发布和msi

我想更新用户应用和数据库文件,但不要触摸存储在该数据库中的数据。看起来很简单,但我无法在网上找到如何使用Visual Studio发布完成此任务

到目前为止我收集的内容有两种选择:

  • 为每个创建sql更新脚本 发布并尝试更新数据库 修补后的第一个程序启动。
  • 创建数据库设置项目并尝试 从那里编写脚本(不知道怎么做)。

我很高兴听到你们有些人正在使用或会使用这种情况。一些链接到示例/详细解释todo将如何真棒。我不太擅长这个部署/数据库的东西......但是...... :)

提前致谢。

3 个答案:

答案 0 :(得分:2)

在我目前的项目中,我们使用了一种称为连续数据库集成的技术。

我们将所有sql更改脚本(可以创建/更改表,存储过程,还可以迁移数据等)收集到ac#项目中,并与其他软件同时部署它们。

使用这种技术,我们可以确保所有开发人员数据库都是最新的,因为它集成在visual studio构建系统中。

我们为本地构建和部署运行此MSBuild脚本。它检查数据库中的版本号,并运行任何具有更高编号的脚本。

我不太喜欢MSBuild,但它完成了工作。

Martin Fowler有一篇关于evolutionary database design的文章,其中有一些背景知识。

如果您正在使用SQL Server管理工作室进行更改,则可以使用“生成更改脚本”让它为您编写更改脚本。

答案 1 :(得分:1)

关于“Rails Style Database Migrations in .Net”的这篇文章可能很有用。自Rails崛起以来,已经有很多关于数据库迁移最佳实践的工作,可以在其他语言和平台中使用。

答案 2 :(得分:0)

如果您将安装程序类添加到您的DLL或EXE,它将在安装过程中调用Install方法(请查看我们的MSDN了解详细信息,VS可以为您制作迷你安装项目,然后您可以只复制框架和属性)。然后你可以针对CE运行SQL命令并备份现有的CE文件,甚至在出现问题时进行回滚(安装程序类有方法在整个设置的级别上遵循完整的跨国步骤 - 这件事情: - )