为数据库schema变更使用扩展和收缩模式

引言
数据库表结构的设计会随着与之交互的软件变化而不可避免地演进。能够安全、可靠地将表结构过渡到新需求至关重要。
虽然数据库迁移工具通常可以更新实际的数据结构,但数据本身也必须转换到新格式、迁移到不同的表或列,并更新以符合新的预期。这些过程虽然不一定复杂,但在客户端仍在使用的线上系统中执行时尤为敏感。
幸运的是,有一种称为扩展与收缩模式的多步骤流程,可在不中断系统服务的情况下,安全地逐步将客户端迁移到使用新的数据结构。本指南将探讨扩展与收缩模式是什么,它如何实现新旧结构之间的无缝过渡,以及如何将其应用于各种数据库转换。
什么是扩展与收缩模式?
扩展与收缩模式是一种数据库管理员和软件开发人员可用来将数据从旧数据结构迁移到新数据结构而不影响系统正常运行时间的流程。它通过一系列独立的步骤来应用变更,旨在后台引入新结构、为线上使用准备数据,然后无缝切换到新结构。
该流程可用于修改许多正在使用的接口,但对数据库表结构变更尤其有用。除了将数据和客户端迁移到新数据结构之外,扩展与收缩模式还有一个优势:如果在过程中的任何阶段出现问题,或者需求发生变化,你都可以轻松地回滚变更。

