执行rake db时出错:在Heroku上进行迁移

什么时候做

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

我无法在Heroku上将pg_dump添加到PATH。 怎么处理这个?

问题是rails在迁移完成后尝试转储新的structure.sql ,并且由于pg_dump不存在而失败。 为部署的应用程序生成新的structure.sql是没有意义的,因此最好的解决方案是告诉rails不要。

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

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