web-dev-qa-db-ja.com

SQLite 3を使用してRoRアプリをHerokuにデプロイすると失敗する

最初のアプリを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'

何が悪いのですか?

39
Jaco Pretorius

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"
53
Simone Carletti

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
...

参照を完全に削除すると、おそらくローカルデータベースが台無しになります

4
hoitomt

この問題に対して頭を叩いた後、私はmasterリポジトリのブランチをherokuにプッシュしていることに気付きましたが、deploy-postgresですべてのpostgres変更を行っていました私のリポジトリのブランチ!

deploy-postgresブランチをローカルマスターとマージしました[git checkout master; git merge deploy-postgres]を実行すると、git Push heroku master herokuのドキュメントに従って。

1
duhaime

私は同様の問題に直面していましたが、別のブランチにいることに気付きました-new_layoutmasterをプッシュしていました。だから私は次のコマンドを使用して希望のブランチをherokuにプッシュし、すべてがうまくいきました。

git Push heroku new_layout:master 
0
Milind

私はここですべての答えを見て何時間もこれにこだわっていましたが、それをまとめるのに十分な詳細を得ることができませんでした。このページは私にすべてを案内しました。 http://railsapps.github.io/Rails-heroku-tutorial.html

幸運を。

0
Sangaku