从上次构建以来的提交创建 SQL 脚本
Create SQL script from commits since last build
作为 DevOps 工程师,我希望我们的开发人员能够将 SQL 脚本放置在 SQL 服务器数据库项目文件夹中,并让 VSTS 构建代理准备自上次成功以来提交的所有脚本构建。
我只查找自上次成功构建以来的文件的原因是因为我只希望这些脚本 运行 一次。如果将它们内置到 post-部署脚本中,则每次部署数据库时它们都将是 运行。大多数这些脚本是数据更改而不是架构更改。
我找到了这个 ,但该解决方案应用于 Git 存储库以获取最新提交的更改,而不是通用解决方案或 TFVC 等效解决方案。
我需要查看 Visual Studio 预构建事件吗? SQL 服务器数据库项目 post - 部署脚本? VSTS 生成代理任务以搜索最新文件并将其复制到另一个位置?
如果将它们内置到 post 部署脚本中,则每次部署数据库时它们都会 运行。
解决这个问题的方法是制作脚本idempotent。如果需要插入数据,请在插入之前检查它是否存在。
听起来您真正想要的是 DBUP,它跟踪哪些脚本已经 运行 并通过控制台应用程序运行它们。
https://dbup.readthedocs.io/en/latest/
https://marketplace.visualstudio.com/items?itemName=johanclasson.UpdateDatabaseWithDbUp
作为 DevOps 工程师,我希望我们的开发人员能够将 SQL 脚本放置在 SQL 服务器数据库项目文件夹中,并让 VSTS 构建代理准备自上次成功以来提交的所有脚本构建。
我只查找自上次成功构建以来的文件的原因是因为我只希望这些脚本 运行 一次。如果将它们内置到 post-部署脚本中,则每次部署数据库时它们都将是 运行。大多数这些脚本是数据更改而不是架构更改。
我找到了这个
我需要查看 Visual Studio 预构建事件吗? SQL 服务器数据库项目 post - 部署脚本? VSTS 生成代理任务以搜索最新文件并将其复制到另一个位置?
如果将它们内置到 post 部署脚本中,则每次部署数据库时它们都会 运行。
解决这个问题的方法是制作脚本idempotent。如果需要插入数据,请在插入之前检查它是否存在。
听起来您真正想要的是 DBUP,它跟踪哪些脚本已经 运行 并通过控制台应用程序运行它们。
https://dbup.readthedocs.io/en/latest/
https://marketplace.visualstudio.com/items?itemName=johanclasson.UpdateDatabaseWithDbUp