我们正在尝试开始使用SQL Source控件并提出一些问题。
这就是我的目标。这看起来会起作用吗?
注意: - 使用“共享数据库”开发模型。
问题:
答案 0 :(得分:2)
是的,我相信这应该可行。传统上,合并分支的问题导致迁移脚本出现问题,尽管迁移V2的测试版正在解决这个问题以及其他问题。
如果您的某种构建系统链接到您的存储库,您可以自动化后一部分,使用SQL Automation pack进行部署以进行测试 - 例如,您可能会触发类似TeamCity的内容合并然后自动更新测试以保存手动需要它。
答案 1 :(得分:2)
很高兴您从存储库中部署了数据库更改的版本化副本,这在我眼中是非常好的持续交付实践。
对你的问题提出一些建议(我戴上红帽)
通常不建议将SQL Source Control连接到您的实时环境。它会轮询以查找更改,这可能不是您想要的实时系统。建议使用SQL Compare代替对UAT / Production系统进行一次性部署。或者,您可能会对Red Gate Deployment Manager产品感兴趣。
您在上面询问有关测试中的共享/专用模式的信息。如果您在开发分支中为开发人员使用共享数据库,然后在测试分支中使用专用模型,则无关紧要。如果对测试数据库的唯一更改来自一个地方(例如您的git部署),则最好以专用模式运行该数据库。
我画了diagram并对你进行了一些调整。不确定您是否使用CI服务器,但我已经添加了适合该过程的位置。此图假设两个开发人员的专用模式,但可能是共享数据库。
答案 2 :(得分:0)
是的,只要您使用正确的连接模型,这似乎就有效。
红门(Here's why)不认为这是最佳做法。他们更喜欢你也购买SQL Compare。
您可以使用专用模型简单地连接到所有数据库,但是您无法查看谁修改了特定对象,但您可以从实时合并补丁。
我更喜欢这个:
如果a mixed model feature被释放可能会更简单(投票here)。