Sql server Redgate SQL源代码管理为开发测试实时数据库推荐的工作流

Sql server Redgate SQL源代码管理为开发测试实时数据库推荐的工作流,sql-server,version-control,redgate,Sql Server,Version Control,Redgate,我们正在尝试开始使用SQL源代码管理,但有一些问题 这就是我的目标。这看起来有用吗 修改dev数据库表/进程 提交到dev PC上的dev git分支 推动中央回购的变化 对每个更改重复步骤1-3 将开发分支合并到测试分支 在测试分支上使用SQL源控件“获取最新信息” 将更改应用于测试数据库 重复步骤5-8,但从测试到现场 注: -采用“共享数据库”开发模式 问题: 这看起来有用吗 SQL源代码管理能否将更改应用于测试和实时数据库 或者我需要为开发服务器购买一份SQL Compare副本来执

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

这就是我的目标。这看起来有用吗

  • 修改dev数据库表/进程
  • 提交到dev PC上的dev git分支
  • 推动中央回购的变化
  • 对每个更改重复步骤1-3
  • 将开发分支合并到测试分支
  • 在测试分支上使用SQL源控件“获取最新信息”
  • 将更改应用于测试数据库
  • 重复步骤5-8,但从测试到现场
  • 注: -采用“共享数据库”开发模式

    问题:

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

    • 在此处修复该图:
    • 更多的笔记和经验在我的

      • 是的,我相信这应该可以。传统上,关于合并分支的问题会给迁移脚本带来麻烦,尽管Migrations V2的beta版正在解决这个问题以及其他问题


        如果您有某种类型的构建系统链接到您的存储库,您可能会使用自动化后一部分,在后一部分中它将部署以进行测试-例如,您执行合并时可能会触发TeamCity之类的事件,然后自动更新测试以手动保存您需要执行的操作

        很好,您正在部署存储库中数据库更改的版本副本,在我看来,这是一个非常好的连续交付实践

        对你的问题有一些建议(我戴着红门帽)

        • 通常不建议将SQL源代码管理连接到您的实时环境。它通过民意调查来寻找变化,而这可能不是您希望在实时系统上看到的。建议使用SQL Compare来对UAT/生产系统进行一次性部署。或者,您可能对该产品感兴趣

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

        我已经画了一张图,对你的做了一些调整。不确定您是否正在使用CI服务器,但我已经添加了适合此过程的位置。此图假定两个开发人员采用专用模式,但也可以使用共享数据库


        是的,只要使用正确的连接模式,这似乎确实有效

        红门()认为这不是最佳实践。他们希望您也购买SQL Compare

        您可以使用专用模型简单地连接到所有数据库,但您无法查看谁修改了特定对象,但您可以合并live中的修补程序

        我喜欢这样:

        • 开发人员使用共享模型进行连接
          • 然后您可以看到谁修改了每个表/proc/etc
        • 我们还使用共享模型在dev服务器上保留一个工作文件夹。
          • 这使我们可以使用get-latest从live中使用补丁更新开发人员
        如果被释放(投票),情况可能会更简单


        是的,这将起作用。这基本上是我们如何做到的。我似乎无法“获取最新的”测试数据库。测试数据库是否应该使用“专用数据库”模型,而开发人员仍然使用“共享数据库”模型?似乎正在工作,现在测试和直播都使用专用数据库模型。Dev仍然是共享的。你能指出关于新版本迁移脚本的任何信息吗?嗨,Ben-我自己还没有好好看一看,但这里有一些信息:和一个谷歌反馈/讨论小组:正是我想要的。谢谢迁移:也是一个在堆栈问题3天后发布的文档:我们目前没有使用CI server,但已经讨论过了,并且已经在路线图上了(还没有时间尺度)。