我运行
时出现错误git push heroku master
这是我得到的错误:
remote: Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
remote:
remote: /tmp/build_6084782c356fe559294d11bd3affdd4e/vendor/ruby-2.0.0/bin/ruby extconf.rb
remote: checking for sqlite3.h... no
remote: sqlite3.h is missing. Try 'port install sqlite3 +universal',
remote: 'yum install sqlite-devel' or 'apt-get install libsqlite3-dev'
我的config / database.yml看起来像这样:
default: &default
adapter: postgresql
encoding: unicode
pool: 5
development:
<<: *default
database: small_time_grocer_development
test:
<<: *default
database: small_time_grocer_test
production:
<<: *default
database: small_time_grocer_production
username: small_time_grocer
password: <%= ENV['SMALL_TIME_GROCER_DATABASE_PASSWORD']
我的Gemfile如下:
source 'https://rubygems.org'
gem 'rails', '4.2.0'
gem 'rails_12factor', group: :production
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'pg'
# devise gems
gem 'therubyracer'
gem 'devise'
gem 'omniauth'
gem 'omniauth-facebook'
# gem for error respond_to featurefrom responders gem
gem 'responders', '~> 2.0'
group :development, :test do
gem 'byebug'
gem 'web-console', '~> 2.0'
gem 'spring'
end
ruby "2.1.5"
我在gemfile中的任何地方都没有sqlite3,但即使在提交更改并推送到heroku之后我仍然会收到此错误。有什么想法吗?
我还应该提到一下,我不知道rails new命令的-d标志。所以我最初开始使用rails app:
rails new <servername>
而不是:
rails new <servername> -d postgresql
我应该只在这次启动应用程序时使用postgresql进行初始化吗?我无法弄清楚为了部署我缺少什么配置。
答案 0 :(得分:0)
尝试运行bundle update
(它将更新Gemfile.lock),然后再次推送更改,如果Gemfile
或Gemfile,lock
中有任何更改。
然后尝试再次部署。
答案 1 :(得分:0)
我经常需要在运行bundle install或bundle update之前删除Gemfile.lock文件,以便成功生成新的Gemfile.lock文件。
然后将更改保存到git以推送到Heroku:
git add -A
git commit -m "update gemfile"
git push heroku master