1

假设我创建了一个分支 ( new_branch)。在该分支中,创建了一个迁移 ( migration_1)。

后来,我切换回master. 然后我创建一个迁移(migration_2),推送到 Heroku,并在 Heroku 上运行迁移。

再后来,我合并new_branchmaster,然后推master送到 Heroku。

当我尝试在 Heroku 上运行迁移时,不会migration_1被跳过并且不会运行,因为它是之前创建migration_2的,已经运行过?

4

1 回答 1

6

每个迁移都附加了一个迁移时间戳。成功应用的迁移列表存储在 Rails 应用程序内的模式表中。

当您运行时migration_2,此条目将添加到数据库中。合并时migration_1,Rails 将检测到由于模式表中缺少条目而尚未应用更改,并将运行它。

于 2012-10-03T12:56:45.733 回答