迁移:在迁移中实际从 A 点移动到 B 点的是什么?

Migrations: What is actually moving from point A to point B in migrations?

在Active Record中,当我们处理迁移时,到底是什么在迁移?当我想到迁移时,我会想到从 A 点移动到 B 点的东西,就像英语中的常见含义。我一直无法看到我的研究正在发生什么。

数据库迁移上下文中的迁移比数据 "moved" 更像是一个抽象概念。在数据库迁移中,我们将处于状态 A 和 "migrating" 状态 B 的数据库概念化。

举个例子,当我们向 table 添加一个新字段时。状态A中的table为:

ID | Field1 | Field2
1  | foo    | bar
2  | foo2   | bar2

当我们添加字段时,数据并没有被字面上移动,但我们可以概念化数据是"moving"或"migrating"从上面的状态A到新的table B的状态:

ID | Field1 | Field2 | Field3
1  | foo    | bar    | nil
2  | foo2   | bar2   | nil