现在,开发人员都有一个带有生产数据库快照的本地开发环境 - 他们可以扭曲、搅动和破坏数据,而不会影响除他们自己以外的任何人。
这些快照开始变大,导入它们的数据开始需要将近一个小时。
在维护开发数据方面有更好的建议吗?可以将开发数据拆开以进行潜在更改,然后如果更改想法不好等则需要将其放回原处。
最佳答案
我尝试使用以下方法:
开发人员在版本控制中维护一个基线脚本,并从头开始设置数据库架构。它会创建模式,就像它存在于生产数据库中一样。
他们还维护一个“脚本”来设置测试数据。这个“脚本”实际上使用了生产类,有时还使用了一点 DSL。为了合理快速,脚本只生成最少的测试数据。我建议将其作为完成定义的一部分,以便为任何新功能构建创建一些测试日期。
开发人员可以在他们的数据库(或数据库架构)上随意运行这些脚本。第一个脚本还用作运行自动数据库测试的基础。
开发人员完成的任何工作的结果都是迁移脚本。即可以应用于生产数据库以使其达到新的所需状态的脚本,包括数据更新。
这些迁移可以在生产数据库的快照上进行测试。生产数据库的快照也用于运行负载和性能测试。
我仅针对快照使用数据库特定工具。大多数其他内容都是用主要编程语言(对我来说是 java)编写的,因此开发人员使用起来很舒服。
我经常遇到对这种方法的抵制(“脚本太多”、“数据库太多”、“我不想使用版本控制,因为我的数据库建模工具不支持它”)。但是除了大量的手动工作之外,我真的看不到替代方案。
关于database - 维护开发数据库的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11954663/