sql-server - 二维 git 存储库。开发/测试/实时以及数据库开发中的堆叠变化
问题描述
好的,这是一个问题,看看我是否可以得到一些帮助来解决这个问题。
首先,我们使用 SQL Server 事务脚本,因此它不是通常的编码,因此例如功能切换很难实现(可能吗?)。
好的,我们的问题是这样的:
- 任务 1:向表 X 添加列
- 任务 2:删除表 Y 并更改与该表关联的 3 个存储过程。
- 任务 3:截断表 Z
我们有三个不同的服务器,DEV -> TEST -> PROD。
但!由于它是 SQL,我们可以在 DEV 上实现任务 1,在 Test 和 Prod 上实现任务 2,但不能在 dev 上实现,而在仅测试上实现任务 3。
当然,这也可以改变。所以突然间我们必须在 dev 上添加任务 2 或在 prod 上添加任务 3 等等。
复杂。
这意味着传统的思维方式是将您满意的产品从 DEV 转移到 TEST,当用户对测试感到满意时,将完整的产品转移到 PROD。由于我们在这里讨论的不是“完整产品”,而是应该在不同时间在不同服务器上实施的变更集,我对现有的最佳实践有点不确定?
是否有一些想法可以让我阅读,或者你有一些很好的建议?
谢谢!
解决方案
我不确定我是否 100% 关注你,但你所描述的设置正是我的公司如何使用 git 操作他们的 SQL Server 部署。
我们有 3 台服务器,只是使用不同的名称DEV -> STAGE -> PROD
。
就您的任务而言,我不确定我是否完全理解您的问题。
对我们来说,所有更改都经过所有 3 台服务器,并且始终以相同的顺序进行。
所有工作都在 DEV 服务器上完成,完成后,更改将签入 git。
然后我们的 DBA 将这些更改部署到 STAGE 以进行监控,并让 QA 运行自动化测试和回归测试。
如果一切看起来都不错,那么我们计划一个发布日期,并将更改部署到 PROD。
推荐阅读
- c# - C# UTF-8 base64 编码在 PHP 中无法正确解码
- android - Lambda 不起作用 .. 即使我正确设置了 JavaVersion.VERSION_1_8,我有什么遗漏吗?
- python - 带括号的正则表达式前瞻
- sql-server - 如何从 INSTEAD OF 触发器中的当前行获取数据?
- c# - 访问字段值时检查 Null 值
- ios - Alamofire JSON 参数编码因 elasticsearch 失败
- android - 填充微调器
- react-native - React 原生生命周期方法重新渲染组件
- git - 如何配置 Visual Studio 代码以在保存时提交到 git?
- javascript - 使用 Javascript / Node.js 重新采样时间序列或数据帧