Rails / sqlite3部署到heroku postgresql时出错——已经更新了gemfile和master



我是第一次从使用SQLite3的本地Rails环境部署到使用postgresql的Heroku。我已经更新了我的gemfile,使适当的开发/生产组子句。我确保在母版中包含了这些变化。但是,当我运行db时,我反复得到以下错误:

非常感谢您的帮助

prompt> C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/site_ruby/1.9.1/rubygems/custo
m_require.rb:36:in `require': LoadError: cannot load such file -- sqlite3 (Seque
l::AdapterNotFound)
        from C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/site_ruby/1.9.1/r
ubygems/custom_require.rb:36:in `require'
        from C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/s
equel-3.20.0/lib/sequel/adapters/sqlite.rb:1:in `<top (required)>'
        from C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/site_ruby/1.9.1/r
ubygems/custom_require.rb:36:in `require'
        from C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/site_ruby/1.9.1/r
ubygems/custom_require.rb:36:in `require'
        from C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/s
equel-3.20.0/lib/sequel/core.rb:249:in `block in tsk_require'
        from C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/s
equel-3.20.0/lib/sequel/core.rb:72:in `block in check_requiring_thread'
        from <internal:prelude>:10:in `synchronize'
        from C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/s
equel-3.20.0/lib/sequel/core.rb:69:in `check_requiring_thread'
        from C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/s
equel-3.20.0/lib/sequel/core.rb:249:in `tsk_require'
        from C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/s
equel-3.20.0/lib/sequel/database/connecting.rb:25:in `adapter_class'
        from C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/s
equel-3.20.0/lib/sequel/database/connecting.rb:54:in `connect'
        from C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/s
equel-3.20.0/lib/sequel/core.rb:119:in `connect'
        from C:/Program Files (x86)/Heroku/vendor/gems/taps-0.3.23/lib/taps/sche
ma.rb:17:in `dump_table'
        from C:/Program Files (x86)/Heroku/vendor/gems/taps-0.3.23/bin/schema:32
:in `<main>'

要使heroku db:push命令工作,您需要在Ruby Heroku包的版本中安装tapssqlite3宝石。

从上面的回溯中,似乎安装了taps,但缺少sqlite3适配器。

要安装它,请尝试以下操作:

  • 启动一个提升的命令提示符(这样你就可以毫无问题地写入Program Files)
  • cd "C:Program Files (x86)Herokuruby-1.9.2bin"目录。调用gem install sqlite3 --no-ri --no-rdoc

这应该安装丢失的gem并允许heroku db:push与您的sqlite3数据库一起工作。

希望对你有帮助。

最新更新