在vs2010中使用Database项目进行数据库部署和发布补丁

本文关键字:部署 布补丁 补丁 数据库 vs2010 Database 项目 | 更新日期: 2023-09-27 18:19:12

我想知道我们是否可以限制由VS2010数据库项目生成的部署脚本,以便它只包含被修改的数据库对象,而不是整个删除和创建序列。

例如,在合并了连续的更改之后,下一个版本脚本必须只包含被修改的存储过程、函数或表。我试着取消勾选"总是重新创建数据库"选项。但是,它只是为整个数据库创建一个脚本。

我试着找到类似的问题,我发现一些是接近我需要的,但仍然不能解决我的问题。

在vs2010中使用Database项目进行数据库部署和发布补丁

通过将"编译"的项目(.dbschema文件)与要部署到的数据库进行比较来部署数据库项目,然后创建更改脚本。关于如何创建变更脚本有很多选择,但最基本的是总是创建一个"实时"变更脚本。它只会包含部署工具认为不同的内容。

出于偏好和控制的原因,我们手动跟踪所有更改,并保留一个脚本来更新数据库(我在SO上有一个答案,概述了我们的步骤),但我们也使用RedGate的SQL Packager, SQL Compare和SQL Data Compare产品来满足我们的一些需求。

他们一开始很贵,但在我们的组织里已经物超所值了。

问题是这根本不起作用,因为它不能处理每个定义的任何类型的字段重命名。向导无法知道是否重命名了一个文件,或者删除了一个文件并生成了一个不相关的文件。此外,计算(初始)值之类的东西也无法处理。

所以,这种方法只适用于退化的边缘情况,因此即使是中等规模的项目也不能长期工作,抱歉。