答案 0 :(得分:12)
答案 1 :(得分:4)
答案 2 :(得分:4)
我认为它根本不依赖。每个环境都应该拥有自己的数据库实例。就个人而言,我永远不会推荐团队中的每个人都在源的同一副本上工作,我以相同的方式查看数据库代码和实例。
如果您在丢失数据库更改时遇到问题,这是不同开发过程问题的症状。忘记将源代码文件添加到源代码管理中是不合适的。
Jeff Atwood has a pretty good article on source controlling database code.
不同的开发人员据说可以解决不同的问题 - 在单元测试时你如何避免踩到别人的脚趾?
我绝对会提倡集成/测试环境,该环境通过Continuous Integration process进行更新。此环境通常也可用作部署过程的试金石。
答案 3 :(得分:3)
在Redgate,我们建议为每个开发人员提供他们自己的实例,因为沙盒确保开发人员不会互相踩到脚趾。但是,这两种模式都有利弊。
根据我们与数据库开发人员交流的经验,大约一半的数据库开发是在共享环境中执行的,一半是在专用的每个开发人员环境中执行的。
答案 4 :(得分:1)
答案 5 :(得分:1)
为开发人员提供单独的数据库实例可以帮助他们孤立地工作,但是如果我们是一个大型团队并同时处理多个事情,那么拥有共享环境也是一件好事,以便所有需要交付的更改同时也没有打破彼此,他们的家属也可以正确地计算出来。这也有助于确定任何应用程序可能因更改而中断的位置。因此,最好还有一个共享环境以及开发环境的一些独立的环境副本,以防我们想要测试一些非常关键并且无论如何都需要工作的大而复杂的东西。
但唯一的问题是让多个环境保持同步,因为任何遗漏的变化都可能是致命的。
答案 6 :(得分:1)
我知道这里的人们就过去的经历而言,但这并不是一个容易回答普遍问题的问题。每种方法都有利弊,应根据您正在使用的应用程序类型和团队来解决。
如果您不知道要走哪条路线......我建议首先使用共享开发数据库,看看您是否遇到任何问题。如果此解决方案有效,它应该是首选方法,因为它消除了“集成”步骤。但是,根据团队类型和环境需求,您可能需要进行调整。