如果以后从其他分支迁移已经运行,从Git分支迁移如何在Heroku上运行?

问题描述:

说我创建了一个分支(new_branch)。在该分支中,创建了一个迁移(migration_1)。如果以后从其他分支迁移已经运行,从Git分支迁移如何在Heroku上运行?

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

后来还是我把new_branch合并成master,然后把master推到Heroku。

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

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

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

+0

所以我已经标记为答案,但我有一个问题。这个答案如何与[this one]中的答案兼容(http://*.com/questions/2979059/is-the-version-number-in-rails-schema-rb-used-for-any-anything)?在那里,共识是假设模式版本号之前的所有迁移已经运行。 – ben

+0

http://guides.rubyonrails.org/migrations.html#what-s-in-a-name似乎同意西蒙娜的回答。 –