我花了几周的时间试图找到更详细的解释,并举例说明如何在软件补丁上管理我的数据库更改。
情况:
我想更新用户应用和数据库文件,但不要触摸存储在该数据库中的数据。看起来很简单,但我无法在网上找到如何使用Visual Studio发布完成此任务
到目前为止我收集的内容有两种选择:
我很高兴听到你们有些人正在使用或会使用这种情况。一些链接到示例/详细解释todo将如何真棒。我不太擅长这个部署/数据库的东西......但是...... :)
提前致谢。
答案 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文件,甚至在出现问题时进行回滚(安装程序类有方法在整个设置的级别上遵循完整的跨国步骤 - 这件事情: - )