sql-server - Redgate SQL Source Control 推荐的开发-测试-实时数据库工作流程

标签 sql-server version-control redgate

我们正在尝试开始使用 SQL 源代码控制,但有一些问题。

这就是我的目标。这看起来可行吗?

  1. 修改开发数据库表/过程
  2. 提交到开发 PC 上的开发 git 分支
  3. 将更改推送到中央存储库
  4. 针对每个更改重复步骤 1-3
  5. 将 dev 分支合并到 test 分支
  6. 在测试分支上使用 SQL Source ConGtrol“获取最新版本”
  7. 将更改应用到测试数据库
  8. 重复步骤 5 - 8,但从测试到上线

注意: - 采用“共享数据库”开发模式。

问题:

  • 这看起来可行吗?
  • SQL 源代码管理能否将更改应用到测试数据库和实时数据库
    • 或者我是否需要为开发服务器购买 SQL Compare 的副本才能执行此任务?

enter image description here

最佳答案

很高兴您从存储库中部署数据库更改的版本化副本,在我看来,这确实是很好的持续交付实践。

针对您的问题提出一些建议(我戴着红门帽子)

  • 通常不建议将 SQL 源代码管理连接到您的实时环境。它会轮询以查找更改,这可能不是您希望在实时系统上出现的情况。建议改用 SQL Compare 一次性部署到 UAT/生产系统。或者 Red Gate Deployment Manager您可能会对产品感兴趣。

  • 您在上面询问了有关测试中的共享/专用模式的问题。如果您在开发分支中为开发人员使用共享数据库,然后在测试分支中使用专用模型,这并不重要。如果对测试数据库的唯一更改来自一个地方(例如您的 git 部署),那么最好以专用模式运行该数据库。

我画了一个diagram对你的进行一些调整。不确定您是否使用 CI 服务器,但我已经添加了适合该流程的位置。该图假设两个开发人员有专用模式,但也可以是共享数据库。

Red Gate SQL Source Control Continuous Database Delivery

关于sql-server - Redgate SQL Source Control 推荐的开发-测试-实时数据库工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19295761/

相关文章:

sql-server - SQLCop 测试 tSQLt

redgate - 八达通部署,我需要部署所有软件包,直到升级到 QA 为止

sql-server - Dts.Events.FireInformation 方法中的 fireAgain 参数的用途是什么?

sql-server - 查询 : RequestError: Conversion failed when converting date and/or time from character string 中出现一些错误

intellij-idea - 使用 SonarLint for IntelliJ 查找新的 Sonar 问题

version-control - 使用 Nant 的 PowerBuilder 12.NET 自动构建

version-control - 版本升级与版本分支的优缺点

sql-server - 如何检查 SQL Azure bacpac 是否损坏

sql-server - CTE 语句中不存在列名

sql-server - 表变量错误: Must declare the scalar variable "@temp"