我有一个在本地运行良好的应用程序。有一次我尝试安装 Act As Taggable gem,它生成了一系列迁移文件。现在,在我们投票反对使用那个 gem 之后,我在本地回滚了——但是在部署到 heroku 之后,看起来这些迁移文件中有 5 个确实上传到了 heroku。
然后我跑了
`heroku run rake db:migrate'
我现在收到这个错误
'uninitialized constant AddTaggingsCounterCacheToTags::ActsAsTaggableOn/app/db/migrate/20141107010718_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb:6:in `up'
现在我不需要“AddTaggingsCounterCacheToTags”,但我绝对需要一个应该在此之后运行的迁移。
关于如何从生产/heroku 服务器中删除它的任何提示?我如何才能只删除特定的迁移并保留我所做的最新迁移?
谢谢!
最佳答案
好的伙计们。我明白了。
问题是我在本地删除文件后,它们仍然存在于 git 上。该过程是删除导致错误的迁移,然后我可以让所有迁移都顺利完成。命令如下...
git rm [filename]
git commit -a -m "removed the migrations causing the error from git too"
git push origin master
git push heroku master
heroku run rake db:migrate
现在数据库中有一个空的/不必要的表是一个问题,但重要的是 - 我可以继续添加迁移,我的最新功能现在可以在生产环境中正常运行! 干杯!
关于ruby-on-rails - Rails rake db :rollback on Heroku not working. 现在我不能添加任何新的迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26846634/