【发布时间】: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