我知道标题可能令人困惑,但为了解释这个问题,这是我能想到的最好的。
背景:
我有一个域,一个域有2个数据库:一个nosql(Mongodb)和一个sql(Postgres);每个数据库都有自己的模型。例如,如果域名是“myapp”并且版本是“v01”,那么它将在 sql 和 nosql 中都有一个名为“myapp_v01”的数据库。
迁移 - 复制数据库:
当我迁移时,我通常会创建一个名为“myapp_v02”的新数据库(注意 2)。然后迁移脚本将克隆表或将从“myapp_v01”获取数据以某种方式对其进行更改并以不同的方式将其保存到“myapp_v02”。我不知道这是否具有很强的可扩展性,或者迁移需要 1 小时会怎样?
迁移 - 复制表:
我可以简单地创建一个新的临时表来进行迁移更改(从表“cars”复制到“cars_temp”,然后删除“cars”表并将“cars_temp”的名称更改为“cars”)。
迁移 - 更改表:
这有点棘手,因为我们有两个 sql 数据库。在 sql 中,我需要先创建更改模式,然后在需要时以某种方式更新每一行。
结论: 我认为第 3 个是最快的,但我真的不知道这里的最佳实践是什么。
谢谢