【问题标题】:Database change managing on software patch/update/upgrade软件补丁/更新/升级上的数据库更改管理
【发布时间】:2010-08-15 06:36:07
【问题描述】:

几周以来,我一直在努力寻找更详细的解释,其中包含如何管理软件补丁上的数据库更改的示例。

情况:

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

我想更新用户应用程序和数据库文件,但不接触存储在该数据库中的数据。看起来很简单,但我在网上找不到如何通过 Visual Studio 发布来完成这项工作

到目前为止,我收集到的有 2 个选择:

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

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

提前致谢。

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

    Martin Fowler 在evolutionary database design 上有一篇文章,其中有一些相关背景。

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

    【讨论】:

      【解决方案2】:

      这篇关于“Rails Style Database Migrations in .Net”的文章可能会有用。自 Rails 兴起以来,针对数据库迁移的最佳实践开展了大量工作,这些工作可以在其他语言和平台中使用。

      【讨论】:

      • 我当然没有想到/知道这一点,这就像将整个数据库的创建/更改移动到代码中。我特别感兴趣的是能够使用具有相同数据库创建代码的 mysql db。
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-04
        • 1970-01-01
        • 1970-01-01
        • 2019-01-26
        • 2020-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多