【发布时间】:2015-03-04 12:51:08
【问题描述】:
我在运行时不断收到错误
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 应用程序:
rails new <servername>
而不是:
rails new <servername> -d postgresql
我应该只在这一次使用 postgresql 初始化时重新启动应用程序吗?我不知道为了部署我缺少什么配置。
【问题讨论】:
-
Gemfile 中有 sqlite 吗?如果是这样,您是否在删除后运行了
bundle install? -
是的,我最初在 gem 文件中有 sqlite 3,但我在取出它后重新运行了 bundle install,提交了 Gemfile.lock,而不是推送到 heroku,同样的错误。另外,@mmichael 有没有办法检查它是否是最新的?
-
查看
Gemfile.lock的内容,确保那里没有sqlite3。 -
我删除了 2 个 sqlite3 实例,提交并推送,同样的错误
-
嗯,它说我有一个干净的工作目录,即使我对 Gemfile.lock 进行了更改
标签: ruby-on-rails ruby postgresql heroku