我们正在尝试开始使用 SQL 源代码控制,但有一些问题。
这就是我的目标。这看起来可行吗?
- 修改开发数据库表/过程
- 提交到开发 PC 上的开发 git 分支
- 将更改推送到中央存储库
- 针对每个更改重复步骤 1-3
- 将 dev 分支合并到 test 分支
- 在测试分支上使用 SQL Source ConGtrol“获取最新版本”
- 将更改应用到测试数据库
- 重复步骤 5 - 8,但从测试到上线
注意: - 采用“共享数据库”开发模式。
问题:
- 这看起来可行吗?
- SQL 源代码管理能否将更改应用到测试数据库和实时数据库
- 或者我是否需要为开发服务器购买 SQL Compare 的副本才能执行此任务?
- 修复此处的图表:http://goo.gl/l2mJdt
- 更多笔记和经验见我的Google Doc
最佳答案
很高兴您从存储库中部署数据库更改的版本化副本,在我看来,这确实是很好的持续交付实践。
针对您的问题提出一些建议(我戴着红门帽子)
通常不建议将 SQL 源代码管理连接到您的实时环境。它会轮询以查找更改,这可能不是您希望在实时系统上出现的情况。建议改用 SQL Compare 一次性部署到 UAT/生产系统。或者 Red Gate Deployment Manager您可能会对产品感兴趣。
您在上面询问了有关测试中的共享/专用模式的问题。如果您在开发分支中为开发人员使用共享数据库,然后在测试分支中使用专用模型,这并不重要。如果对测试数据库的唯一更改来自一个地方(例如您的 git 部署),那么最好以专用模式运行该数据库。
我画了一个diagram对你的进行一些调整。不确定您是否使用 CI 服务器,但我已经添加了适合该流程的位置。该图假设两个开发人员有专用模式,但也可以是共享数据库。
关于sql-server - Redgate SQL Source Control 推荐的开发-测试-实时数据库工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19295761/