Page 1 of 1

首先,我们需要让旧模型与新的数据库表进这个很简单:

Posted: Thu Feb 20, 2025 4:53 am
by Aklima@444
我们知道,在一次部署中完成这些工作是不可能的。需要更改的代码太多,受影响的服务太多,风险也太大。我们还知道,我们需要零停机操作;我们接触的代码非常关键,如果部署过程中出现任何问题,我们就会失去新用户安装,影响日常运营,并陷入非常严重的麻烦。没有人需要这样的压力。

执行
我们设计了我们的计划,以便这项工作可以在任何数量 墨西哥 WhatsApp 号码 的部署中、在任何持续时间内完成。我们需要能够在中途停止工作——例如,如果出现了更紧急的事情——同时还要确保我们不会在数据中引入任何“缺口”,这将需要我们返回并应用手动修复。第一次部署对于启动工作至关重要,但其余工作可以按任何顺序、在任何时间完成,而且风险很小。

部署 1
初始部署的目的有两个:

将旧模型重定向到新表。除了我们正在积极弃用的模型外,我们的目标是保持整个代码库不变。对旧模型和方法的任何引用仍然像以前一样工作,它们只是秘密地与新的数据库结构交互。
迁移数据。此次部署后,旧数据库表将不再以任何方式使用。
首次部署的风险比后续部署更大,因此我们确保格外小心,进行全面测试并尽早讨论任何潜在问题。我们结合使用了现有单元测试、新单元测试、手动测试以及 GUI 自动化测试。

重定向旧模型
此步骤可确保现有模型 OldModel 仍可在我们尚未重构的任何代码中安全使用。为此,我们需要对该类进行大量修改,使其公开与以前完全相同的 API,同时实际利用新的数据库结构。