一旦完成代码,我们保存这些代码文件来产生数据库变化的完整的变化记录,作为数据库重构的结果。我们于是可以更新任何实例到最新的主数据库,通过运行在我们拷贝主数据库来产生更早的数据库实例的变化记录。
自动化变化的序列化是对于持续集成和迁移产品数据库的一个基本功能。
为了最后产品数据库我们并不在常规迭代周期中实施变化。我们在每一个发布之间建立完整的数据库重构变化日志。毫无疑问,这是一个巨大的变化,我们必须离线实施该变化。在实际应用之前先测试迁移计划绝对是明智之举。迄今为止,这项技术相当管用。通过将大变化分解为小的简单的变化,我们可以对产品数据进行大的变化,同时又不会给我们太多的麻烦。套用兵法中的一句话,就是“化整为零”。
除了自动化向前的变化,我们也要考虑重构时向后的变化。如果能够做到这样就可以回到以前的数据库状态。在我们的项目中并没有这样做,因为没有这个需求,但这同样是很重要的基本原则。
3.7自动地更新所有开发人员的数据库
人们变化和更新主数据库,但是如何发现主数据库已经发生变化?在传统的持续集成有源代码的环境中,开发人员在提交变化之前先更新主数据库。这样他们就可以在提交变化给共享主数据库之前,解决他们自己的机器上的问题。
每次主数据库发生改变时,我们都要更新开发人员的数据库。当主数据库发生变化时,我们自动化更新所有项目成员的数据库。相同的重构代码更新主数据库上的同时,自动更新成员数据库。也许有人认为在开发人员不知情的情况下,更新开发人员数据库会产生很多问题,但在实践中我们没发现什么问题。当然,这只在人们联网时管用。所以当开发人员离线时,必须尽快与主数据库重新保持同步。
文章来源于领测软件测试网 https://www.ltesting.net/