最初のアプリをHerokuにデプロイしようとしています。データベースとしてSQLiteを使用しています。私が知る限り、HerokuはSQLiteを使用していません-バックエンドでPostgresに切り替えます。
デプロイすると、次のエラーが発生します。
/usr/Ruby1.8.7/lib/Ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/runtime.rb:64:in `require ':ロードするファイルがありません-sqlite3(LoadError)
私のGemfile
(これがこの問題の原因であると想定しています)は次のようになります。
source 'http://rubygems.org'
gem 'Rails', '3.0.0'
gem 'sqlite3-Ruby', '1.2.5', :require => 'sqlite3'
何が悪いのですか?
HerokuはSQLiteデータベースをサポートしていません。 この投稿でも説明しました のように、本番環境ではPostgreSQLを使用する必要があります。
group :production do
gem "pg"
end
group :development, :test do
gem "sqlite3", "~> 1.3.0"
end
実際には、できるだけ本番環境に近い環境での開発/テストに使用することをお勧めします。したがって、すべての環境をPostgreSQLに切り替えることをお勧めします。
# replace gem "sqlite3" with
gem "pg"
Simone Carlettiは正しく、Joostもそうです。 sqlite3 gemをグループ化するか、Gemfileから完全に削除する必要があります。 Herokuは、本番環境でsqlite3を使用したくないことを知る必要があるだけです。
したがって、この:
...
group :development, :test do
gem "sqlite3-Ruby", "~> 1.3.0", :require => "sqlite3"
end
...
またはこれ:
...
#No reference to sqlite3-Ruby
...
参照を完全に削除すると、おそらくローカルデータベースが台無しになります
この問題に対して頭を叩いた後、私はmasterリポジトリのブランチをherokuにプッシュしていることに気付きましたが、deploy-postgresですべてのpostgres変更を行っていました私のリポジトリのブランチ!
deploy-postgresブランチをローカルマスターとマージしました[git checkout master; git merge deploy-postgres
]を実行すると、git Push heroku master
herokuのドキュメントに従って。
私は同様の問題に直面していましたが、別のブランチにいることに気付きました-new_layout
とmaster
をプッシュしていました。だから私は次のコマンドを使用して希望のブランチをherokuにプッシュし、すべてがうまくいきました。
git Push heroku new_layout:master
私はここですべての答えを見て何時間もこれにこだわっていましたが、それをまとめるのに十分な詳細を得ることができませんでした。このページは私にすべてを案内しました。 http://railsapps.github.io/Rails-heroku-tutorial.html
幸運を。