【问题标题】:Heroku db:push fails with segfaultHeroku db:push 因段错误而失败
【发布时间】:2012-02-22 06:01:11
【问题描述】:

我正在为 Rails 3.1、Ruby 1.9.2 安装一个新的 Heroku 应用程序。问题在于执行 'heroku db:push' 来填充数据库(它已被适当地模式化——现在唯一的问题是获取一些数据)。它失败并显示以下报告:

/Users/upstill/.rvm/gems/ruby-1.9.2-p290/gems/sqlite3-1.3.5/lib/sqlite3/sqlite3_native.bundle:[BUG]分段错误

ruby 1.8.7(2010-01-10 补丁级别 249)[universal-darwin11.0]

中止陷阱:6

这令人费解有两个原因:第一,我在本地和 heroku 上都使用 postgresql 数据库(在 config/database.yml 中正式声明)。第二,ruby 1.8.7 与什么有关? rvm 是为 1.9.2 设置的,它在我的路径上,但 heroku 正在尝试运行它?什么给了?

谢谢, Steve Upstill

【问题讨论】:

  • 我得到了同样的错误,除了使用 ruby​​ 1.9.3-p125 时。我尝试将 sqlite3 gem 版本回滚到 1.3.3 和 1.3.4,没有任何变化。我对命令行输出中的这个 ruby​​ 1.8.7 参考也很困惑。我什至没有安装 ruby​​ 1.8.7。
  • 我怀疑这是因为 Heroku Toolbelt 没有预料到 rvm 玩的 shell 游戏,而是天真地期望总是使用安装它的 Ruby 版本。就我而言,我可以让heroku db:pull 在 Ruby 1.9.3(但不是 1.8.7 或 2.0)中工作。这可能是因为我在 1.9.3 上安装了 Heroku Toolbelt。当我在 Ruby 2.0 下运行 heroku db:pull 时,我读到了 SEGFAULT 错误:/Users/adam/.rvm/gems/ruby-2.0.0-p0/gems/sqlite3-1.3.7/lib/sqlite3/sqlite3_native.bundle: [BUG] Segmentation fault ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin10.8.0]
  • taps 和 db:push 和 db:pull 将很快被替换。如果有人想早点尝试,我已经提出了一个问题github.com/heroku/heroku-pg-extras/issues/42

标签: heroku rails-postgresql


【解决方案1】:

也有这个问题,非常烦人,但最终我让它工作了。我已经安装了工具带,但是一旦我这样做了,它就开始工作了:

gem install heroku
sudo gem install taps

是的,工具带已经安装,但我认为这确实修复了它。 很多人都有这个问题,你并不孤单。

希望这会有所帮助(:

【讨论】:

  • 这解决了我的问题。
  • 我不知道为什么这应该有效,但确实有效。谢谢。
  • 如果您在应用上述操作后还有其他错误,您可能还需要安装 gems 'sequel' 和 'sqlite3'。
  • 运气不好——如果您使用安装在用户帐户上的 RVM,这个解决方案甚至没有意义。没有安装 Ruby 1.8.7。应用程序使用 Postgres,而不是 sqlite。这很奇怪。
  • 为我工作!我在使用 RVM 时跳过了 sudo,看起来还可以。 Heroku 还警告说,它的 gem 已被 Heroku Toolbelt(我之前安装过)弃用。还没有尝试重新安装..
【解决方案2】:

您的代码正在尝试使用 Ruby 1.8.7 运行 1.9.2 版本的 SQLite。

我建议在尝试推送之前切换到 1.9.2。

rvm use 1.9.2-p290
heroku db:push

理想情况下,您希望切换到 1.9.2 句号。

【讨论】:

  • 这很奇怪:根据 rvm,我使用的是 1.9.2。另外,我的数据库两端都是 Postgresql,那为什么还要和 Mysql 搞混呢?
  • taps 依赖于 SQLite
  • ... 和(点击)有必要通过 heroku db:push 将数据库进出 Heroku devcenter.heroku.com/articles/taps
猜你喜欢
  • 1970-01-01
  • 2011-09-29
  • 2016-06-13
  • 2018-08-14
  • 2013-01-04
  • 1970-01-01
  • 2018-09-01
  • 2023-03-10
  • 1970-01-01
相关资源
最近更新 更多