使用通用数据库进行协作开发

sar*_*ego 3 database collaboration

我项目中的一些人似乎认为使用一个共同的开发数据库,​​每个人都连接到它是最好的.我认为它不是,每个开发人员拥有自己的数据库(定期更新数据转储)是最好的.我是对还是错?您是否在这些方法中遇到任何问题?

big*_*ose 5

磁盘空间和CPU应该足够便宜,每个开发人员都可以运行自己的数据库实例,并在版本控制下自动构建.这需要允许开发人员大胆地攻击数据库,与任何其他开发人员的并发黑客隔离.

当然,需要注意的是,除非可以在构建过程中自动应用,否则他们对其私有实例所做的任何更改对其他任何人都无用.因此,需要有一个坚定的策略,即应用程序代码不能依赖于任何数据库状态,除非该状态由版本控制的,经过单元测试的DDL更改表示.

有关将数据库定义视为项目代码的另一部分以及协调更改和重构的理论和实践的出色指南,请参阅Scott W. Ambler和Pramod Sadalage的重构数据库:进化数据库设计.