ruby-on-rails - Rails rake db :rollback on Heroku not working. 现在我不能添加任何新的迁移

标签 ruby-on-rails ruby postgresql heroku

我有一个在本地运行良好的应用程序。有一次我尝试安装 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/

相关文章:

sql - Postgres - 从字符串中字符的开头到倒数第二个出现的子字符串

ruby-on-rails - 如何使用 Docker 和 Fig 更新生产环境中的 Rails 应用程序并实现零停机?

ruby-on-rails - rails : money gem converts all amounts to zero

mysql - 数据库中的 order by 和 Ruby 中的 sort 哪个更高效?

Ruby:从零开始的逆向方法

postgresql - 自动递增串行数据类型

ruby-on-rails - Rails : difference between ENV. fetch() 和 ENV[]

ruby-on-rails - Ruby on Rails : should all my ActiveRecord callback methods be private?

Ruby 正则表达式 ‘backslash R’ 又名 ‘\R’ 模式

sql - 没有重复的 PostgreSQL 组合