不停机数据库迁移
我已经进行了一段时间的持续交付讨论 ,在我的讨论中,我描述了一种如何在不停机的情况下安全地将一个数据库迁移到另一个数据库的模式。 由于许多人联系我并要求提供更多详细信息,因此,我将在此处按承诺提供更多详细信息。
您可以使用此模式在两个不同的数据库之间迁移,例如在MySql和MongoDB之间或同一数据库中的两个模式之间迁移。
这种模式的想法是使用功能切换来进行懒惰的数据库迁移,以控制应用程序的行为并逐步完成迁移的各个阶段。
假设您要从“旧”数据库迁移到“新”数据库的两个数据库。
第1步
构建“新”数据库架构并将其部署到生产环境中。 在此阶段,您的系统保持不变,除了部署了一个新数据库(准备就绪后可以开始使用)之外,没有任何改变。
第2步
在您的应用程序中添加一个新的DAO,该DAO将写入“新”数据库。 您可能需要重构应用程序,以使其具有访问数据库的单个(或很少)点。 在您访问数据