将新列添加到表推送到heroku

时间:2014-01-14 13:20:03

标签: ruby-on-rails-3 postgresql heroku ruby-on-rails-4

继我之前的帖子(carrierwave image not loading into source code)之后,我在表格组合中添加了一个新列(feature_image)。

我想将此推送到我的Heroku应用程序,但我已经在网站上有一些我不想丢失的投资组合条目。

无论如何,我可以推送我的数据库更改而不会丢失已经存在的内容吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

推送它不会影响你的记录(除非你有一些特殊的代码在每次推送时重置数据库 - 从未听说过这种情况,但谁知道),只有新的迁移将会执行以添加新列,这样你最终会有很多没有图像的portofolios。

rails app将所有migrations个号码保存到schema_migration的{​​{1}}表中,因此下次您运行db时,它只会迁移不在migration的号码schema_migration

在我的情况下,如果我只运行迁移20140109214830_add_is_new_to_messages将会迁移,因为它的号码不是schema_migration,它会在本地计算机上以这种方式运行,并且在推送时也是如此。

enter image description here

迁移后,迁移号码将保存到schema_migration表(第44行):

enter image description here

git push heroku master && heroku run rake db:migrate && heroku restart