0

几周以来,我一直在尝试通过示例找到更详细的解释,如何管理软件补丁上的数据库更改。

情况:

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

我想更新用户应用程序和数据库文件,但不触摸存储在该数据库中的数据。似乎很容易,但我无法在网上找到如何通过 Visual Studio 发布来完成这项工作

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

  • 为每个版本创建 sql 更新脚本,并在修补后的第一个程序启动时尝试更新数据库。
  • 创建数据库设置项目并尝试从那里编写脚本(不知道如何执行此操作)。

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

提前致谢。

4

3 回答 3

2

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

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

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

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

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

Martin Fowler 有一篇关于进化数据库设计的文章,其中有一些背景知识。

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

于 2009-02-12T21:07:16.797 回答
1

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

于 2009-02-12T20:50:49.440 回答
0

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

于 2010-08-14T22:36:07.510 回答