希望这里的每个人都没事。
我们使用 VS 2008 作为开发工具,使用 TFS 2008 作为版本控制以及构建自动化。我们的一些开发人员使用 dbpro 进行数据库更改,一些开发人员使用 SQL Server 管理工作室。
我正在尝试为使用 C# 和 VB.Net 构建的 Web 应用程序自动构建。我们的场景是这样的,我们有一个中央数据库,我们的 Web 应用程序连接到该数据库。
每当我们为客户提供新功能或错误修复时,我们都会为他们提供增量构建。
当 SQL 脚本在我们的中央数据库服务器上进行更改并对其进行测试时,它们会被检入到每个增量构建的源代码控制中。
我想生成可以在客户端作为增量更新脚本运行的差异脚本。现在实现它是一个问题。有时我们的开发人员往往会忘记数据库更改集,并且源代码管理中的脚本缺少一个或两个 SP。
此外,有时我们需要将默认数据插入一些具有严格值而不是测试值的表中。就像包含面板提供的服务的表一样,我们在ServiceTable中添加新的服务名称、签名、凭据和服务地址等。除此之外,许多其他表可能有可能不需要的测试数据。
如果我们使用 DataCompare,它将为所需数据(对于客户端启用某些服务很重要)和我们的测试数据生成变更集,这些测试数据是我们测试功能或修复错误的结果。
目前,我在 TFS 2008 的构建定义的 TFSBuild.proj 文件中使用SQLSchemaCompareTask(来自 Visual Studio 2008 Team Database Professional Power Tools API)。
使用 SQLSchemaCompareTask,生成的脚本包含数据库名称,如 [dbo]。等等,因为脚本在 SQL Server 2000 数据库(我们的一些客户端仍然使用 SQL Server 2000)数据库作为应用程序的后端运行时失败。
此过程也无法生成默认数据。
为了克服这个问题,我必须想出一个可以比较数据库并自动生成脚本的解决方案,在发送给客户之前不必再次手动检查。
请建议生成此类 SQL 脚本的有效方法,并建议是否可以使用两个不同的数据库或其他什么?是否有任何工具包或 API 可以为 SQL Server 数据库启用构建自动化?
谢谢你们。
问候
史蒂夫