自动采集编写(考研英语:将sql更改集成到自动构建/部署过程)
优采云 发布时间: 2022-02-07 10:20自动采集编写(考研英语:将sql更改集成到自动构建/部署过程)
将 sql 更改集成到自动构建/部署过程中很困难。我知道,因为我已经尝试了几次,但收效甚微。你想做的事情大致在正确的轨道上,但我认为它实际上有点过于复杂。在您的提案中,建议您采集需要在构建/打包时应用于数据库的特定 sql 脚本。相反,您应该将所有 delta 脚本(用于数据库的整个历史记录)打包到项目中,并计算部署时实际需要应用的 delta - 这样,可部署包可以部署到具有数据库的环境中不同的版本。您需要实现两个实现部分:
1)您需要将增量打包成可部署的包。请注意,您应该打包增量 - 而不是在当前状态下创建模式的静态文件。这些增量脚本应该在源代码控制中。将静态模式保留在源代码控制中也很好,但您必须使其与增量保持同步。事实上,您可以使用 Red Gate 的 sqlCompare 或 VS 数据库版本等工具从静态模式生成(大多数)增量。要将 delta 扩展为可部署的包,并假设您使用的是 svn - 您可能需要查看 svn:externals 以将 delta 脚本“软链接”到您的 Web 项目中。然后,您的构建脚本可以简单地将它们复制到可部署的包中。
2)您需要一个可以读取 delta 文件列表的系统,将它们与现有数据库进行比较,确定需要将哪些 delta 应用到该数据库,然后应用 delta(并更新诸如数据库版本之类的簿记信息) . 有一个名为(由 ThoughtWorks 赞助)的开源项目可以实现这一目标。我个人在这个工具上取得了一些成功。
祝你好运 - 这是一个很难破解(正确)。