假设我创建了一个分支(new_branch
)。在该分支中,创建了迁移(migration_1
)。
稍后,我切换回master
。然后我创建了一个迁移(migration_2
),推送到Heroku,并在Heroku上运行迁移。
稍后,我将new_branch
合并到master
,然后将master
推送到Heroku。
当我尝试在Heroku上运行迁移时,不会跳过migration_1
而不会运行,因为它是在已经运行的migration_2
之前创建的?
答案 0 :(得分:6)
每次迁移都附加了迁移时间戳。成功应用的迁移列表存储在Rails应用程序内的架构表中。
运行migration_2
时,此条目将添加到数据库中。合并migration_1
时,Rails将检测到尚未应用更改,因为架构表中缺少该条目,并将运行它。