【问题标题】:Error when doing rake db:migrate on Heroku在 Heroku 上执行 rake db:migrate 时出错
【发布时间】:2012-09-06 22:57:48
【问题描述】:

什么时候做

heroku run rake db:migrate

执行所有迁移,然后,最后我总是收到以下消息:

/app/vendor/bundle/ruby/1.9.1/bin/rake: No such file or directory - pg_dump -i -s -x -O -f /app/db/structure.sql dan79p98fykovu

我无法将 pg_dump 添加到 Heroku 上的 PATH。 如何处理?

【问题讨论】:

  • 您的 Gemfile 中有什么?可能是您有一个 gem 试图在依赖于该 pg_dump 的迁移之后执行一些代码。在我使用 RSpec 进行测试时,每次运行与 Test::Unit 相关的 rake 任务运行后,我都会收到一条错误消息 - 有点类似的问题
  • 看看这个 SO 问题:stackoverflow.com/questions/10248893/… 可能是您使用的 Rails 版本存在此错误/问题 - 您使用的是什么版本?

标签: ruby heroku rake database-migration


【解决方案1】:

问题是一旦迁移完成,rails 会尝试转储新的structure.sql,但由于pg_dump 不存在而失败。为已部署的应用生成新的 structure.sql 是没有意义的,因此最好的解决方案是告诉 rails 不要这样做。

编辑您的Rakefile 并覆盖该任务。在它的末尾添加以下行应该可以做到:

Rake::Task["db:structure:dump"].clear if Rails.env.production?

【讨论】:

  • n.b.:这仅在使用 structure.sql 时发生,而不在使用 schema.rb 时发生
  • unless Rails.env.development? 不是更好的条件吗?
  • 为什么pg_dump 不存在?
  • 生产应用程序不需要它。
猜你喜欢
  • 2017-10-04
  • 1970-01-01
  • 2013-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-16
  • 2014-03-21
  • 1970-01-01
相关资源
最近更新 更多