2009-02-12 108 views
0

已经有几个星期了,我试图找到一个更详细的解释与示例如何管理我的数据库更改软件补丁。数据库变更管理软件补丁/更新/升级

现状:

  • 我部署WPF应用程序发布到 用户。应用程序使用MSSQL数据文件 存储应用程序的数据
  • 在进一步发展数据库架构更改我添加一些额外的 数据(使用客户端配置文件和SQLServer精简3.5先决条件部署)太
  • 我试图运行 补丁/与Visual Studio的 2008年出版,微星

我想更新用户的应用程序和数据库文件,但没有触及这是存储在数据库中的数据轻微/重大升级。似乎很容易,但我无法在网络上找到如何得到这个与Visual Studio发布

做什么我已经收集了到目前为止两种选择:

  • 创建每个 版本的SQL更新脚本,并尝试更新数据库 修补后的第一个程序启动。
  • 创建数据库设置项目并尝试 脚本从那里(不知道如何做到这一点)。

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

在此先感谢。

回答

1

这篇关于“Rails Style Database Migrations in .Net”的文章可能会有帮助。由于Rails的兴起,在数据库迁移的最佳实践方面进行了大量工作,可以在其他语言和平台中使用这些最佳实践。

+0

我当然没有想到/知道这一点,这就像移动整个数据库创建/更改代码。我特别感兴趣的是能够使用具有相同db创建代码的mysql db。 – 2009-02-12 21:34:21

2

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

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

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

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

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

Martin Fowler在evolutionary database design上有一篇文章,它有一些背景知识。

如果您使用SQL Server Management Studio进行更改,则可以使用“生成更改脚本”让它为您编写脚本更改。

0

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