LBu*_*kin 102 database language-agnostic version-control
关于数据库对象是否应该受版本控制的SO社区wiki已经有一些讨论.但是,我没有看到很多关于为数据库对象创建构建自动化过程的最佳实践的讨论.
这对我的团队来说是一个有争议的讨论点 - 特别是在评估数据库部署自动化方法的优势和风险时,开发人员和DBA通常有不同的目标,方法和关注点.
我想听听SO社区关于哪些实践在现实世界中有效的一些想法.
我意识到这有点主观,哪些实践真的是最好的,但我认为一个关于哪些工作可能对许多人有帮助的良好对话.
以下是我在此主题中关注领域的一些预告片问题.这些并不是一个明确的清单 - 而是人们帮助理解我正在寻找的东西的起点.
van*_*van 53
我尽可能将SQL视为源代码
如果我可以在标准的兼容SQL中编写它,那么它通常会在我的源代码控制中的文件中.该文件将尽可能多地定义,例如SP,表CREATE语句.
我还包括用于源代码控制测试的虚拟数据:
然后我抽象出所有的SQL查询,以便我可以为MySQL,Oracle,MSSQL或其他任何东西构建整个项目.
构建和测试自动化使用这些构建脚本,因为它们与应用程序源一样重要,并测试从完整性到触发器,过程和日志记录的所有内容.