6

いつもと同じ方法でアプリを Heroku にプッシュしようとしました。Ruby 1.9.2 と Rails 3.2.1 を使用しています。ただし、現在、このエラーメッセージが表示されています。私はそれが推奨することをしました

make sure that `gem install sqlite3 -v '1.3.5'` succeeds before bundling.

gemfileで行ったにもかかわらず、これを行っていることに注意してください

group :development, :test do
  gem 'sqlite3'
end
group :production do
  gem 'pg'
end

端末でやっていgem install sqlite3 -v '1.3.5'ますが、プッシュはまだ拒否されています。tmp ディレクトリで参照されている Gem ファイルを確認する方法がわかりませんが、確認したとしても理解できません。

助言がありますか?

Gem files will remain installed in /tmp/build_1timyd7o5k59l/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.5 for inspection.
       Results logged to /tmp/build_1timyd7o5k59l/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.5/ext/sqlite3/gem_make.out
       An error occurred while installing sqlite3 (1.3.5), and Bundler cannot continue.
       Make sure that `gem install sqlite3 -v '1.3.5'` succeeds before bundling.
 !
 !     Failed to install gems via Bundler.
 !
 !     Heroku push rejected, failed to compile Ruby/rails app
4

4 に答える 4

9

私は常に SQLite3 gem をコメントアウトするだけでうまく機能するので、heroku にプッシュすると、gemfile は次のようになります。

# Development Database
#gem 'sqlite3'
# Production Database
gem 'pg'

編集:

上記の解決策は機能し、何らかの理由で宝石を更新したくない場合は簡単です。この問題に対するより良い長期的な解決策は、次のことを行うことです。

group :development, :test do
  gem 'sqlite3'
end
group :production do
  gem 'pg'
end

次に、gemfile.lockファイルを削除します。gemfile.lock変更を反映する新しいファイルを生成する必要があります。ターミナルで次を実行します。

bundle update

最後に、リポジトリを更新し、ターミナルで次の操作を行って heroku にプッシュします。

git add .
git commit -m "commit message"
git push heroku 
于 2012-06-03T03:16:12.227 に答える
2

実際、ローカルで sqlite3 を使用したい場合、最初の Gemfile コードは正しかったです。あなたが示したように、これをgemファイルに入れます:

group :development, :test do
  gem 'sqlite3'
end
group :production do
  gem 'pg'
end

次に、ローカルの Gemfile.lock を削除して、次を実行する必要があります。

bundle update

.lock ファイルを再構築します。次に、Gemfile を追加して再コミットします。

git add Gemfile
git commit -m "Gemfile commit message"

次に、新しい Gemfile をリポジトリにプッシュします。

git push master

もちろん、それに応じて GIT の詳細を変更しますが、要点はわかります。Gemfile の追加/コミット/プッシュがすべてです。

于 2013-01-22T03:36:14.427 に答える
1

更新された Gemfile.lock を git に追加し、git push heroku master を試す必要があります。

追加することを忘れないでください config.action_controller.perform_caching = true

于 2014-02-06T15:33:59.420 に答える
1

私の知る限り、Heroku は sqlite3 をサポートしていませんが、代わりに PostgreSQL データベースを使用しています。Gemfile をそのまま変更し、database.yml を変更する必要があります。したがって、本番グループの場合、Gemfile には次のものが必要です。

https://devcenter.heroku.com/articles/rails3

編集:

ここにはより詳細な回答があるようですので、これは重複している可能性があります: Pushing Rails with SQLite3 to Heroku fails

于 2012-06-03T00:26:32.363 に答える