相关疑难解决方法(0)

版本化SQL Server数据库

我想让我的数据库受版本控制.有没有人有任何建议或推荐的文章让我开始?

我总是希望在那里至少有一些数据(如alumb提到的:用户类型和管理员).我还经常需要大量生成的测试数据来进行性能测量.

database svn sql-server version-control

306
推荐指数
26
解决办法
9万
查看次数

你应该如何从源代码控制构建数据库?

关于数据库对象是否应该受版本控制的SO社区wiki已经有一些讨论.但是,我没有看到很多关于为数据库对象创建构建自动化过程的最佳实践的讨论.

这对我的团队来说是一个有争议的讨论点 - 特别是在评估数据库部署自动化方法的优势和风险时,开发人员和DBA通常有不同的目标,方法和关注点.

我想听听SO社区关于哪些实践在现实世界中有效的一些想法.

我意识到这有点主观,哪些实践真的是最好的,但我认为一个关于哪些工作可能对许多人有帮助的良好对话.

以下是我在此主题中关注领域的一些预告片问题.这些并不是一个明确的清单 - 而是人们帮助理解我正在寻找的东西的起点.

  1. 测试和生产环境都应该从源代码控制构建吗?
    • 是应该使用自动化构建 - 还是应该通过从稳定的,最终的测试环境中复制对象来构建生产?
    • 您如何处理部署脚本中测试和生产环境之间的潜在差异?
    • 您如何测试部署脚本是否可以像测试一样有效地对抗生产?
  2. 哪些类型的对象应该受版本控制?
    • 只是代码(程序,包,触发器,java等)?
    • 指标?
    • 约束?
    • 表定义?
    • 表更改脚本?(例如,ALTER脚本)
    • 一切?
  3. 哪些类型的对象不应该受版本控制?
    • 序列?
    • 资助?
    • 用户帐户?
  4. 如何在SCM存储库中组织数据库对象?
    • 你如何处理转换脚本或ALTER脚本之类的一次性事务?
    • 你如何处理退出数据库中的对象?
    • 谁应该负责将对象从开发推广到测试级别?
    • 如何协调来自多个开发人员的更改?
    • 您如何处理多个系统使用的数据库对象的分支?
  5. 如果有的话,可以合理地对这个过程做出哪些例外?
    • 安全问题?
    • 具有去识别问题的数据?
    • 脚本无法完全自动化?
  6. 如何使流程具有弹性和可执行性?
    • 开发者错误?
    • 出乎意料的环境问题?
    • 用于灾难恢复?
  7. 您如何让决策者相信DB-SCM的好处真正证明了成本的合理性?
    • 传闻?
    • 行业研究?
    • 行业最佳实践建议?
    • 向公认的当局上诉?
    • 成本效益分析?
  8. 谁应该在这个模型中"拥有"数据库对象?
    • 开发商?
    • 数据库管理员?
    • 数据分析师?
    • 超过一个?

database language-agnostic version-control

102
推荐指数
2
解决办法
9179
查看次数

如何将大型现有数据库(模式)置于源代码管理之下?

我的DBA刚刚失去了他在我们的开发数据库上做的一些开发工作.可怜的家伙.很自然地,我们的经理在我们的状态会议上问他如何发生这种情况以及我们如何避免将来发生这种情况."源头控制可以缓解这个问题"我建议...... dba的回应; "不,我们只是更频繁地备份服务器".现在,我想帮助我的DBA了解源代码控制是什么以及它如何与该架构上的数据库架构和开发相结合.

以前我试过向他解释一下,表和存储过程背后的源代码并没有什么特别之处,它应该在源代码控制系统中(在本例中为TFS).但他只是没有咬人.现在,虽然这个错误是在最近的记忆中,但我想再次尝试.

所以我的问题是,你知道我可以传递给我的DBA的任何好建议,甚至可能有一些资源解释你将如何迁移数据库模式以进行源代码控制并在构建中找到适当的位置部署过程?

关于环境的几个事实:

  • TFS 2008服务器上的源代码管理.
  • 数据库是MS SQL Server 2008,具有> 300个表和> 300个其他对象(sprocs,触发器,函数等).

澄清: 过去,我们一直在与其他DBA一起使用DB Ghost和其他变更管理解决方案.我们甚至拥有VS DB版的许可证!问题是让DBA甚至考虑这种为数据库开发的方式.他真的是老派(即从环境到环境手动迁移),不幸的是他是唯一一个对这个特定数据库有所了解的人.

sql-server version-control tfs database-design build-process

7
推荐指数
1
解决办法
793
查看次数