J'essaie de déployer ma première application sur Heroku. J'utilise SQLite comme base de données. Autant que je sache, Heroku n'utilise pas SQLite - il passe à Postgres dans le backend.
Lorsque je déploie, j'obtiens l'erreur suivante:
/usr/Ruby1.8.7/lib/Ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/runtime.rb:64:in `require ': aucun fichier à charger - sqlite3 (LoadError)
Ma Gemfile
(ce qui, je suppose, est la cause de ce problème) se présente comme suit:
source 'http://rubygems.org'
gem 'Rails', '3.0.0'
gem 'sqlite3-Ruby', '1.2.5', :require => 'sqlite3'
Qu'est-ce que je fais mal?
Heroku ne supporte pas les bases de données SQLite. Vous devez utiliser PostgreSQL en production, sous la forme J'ai également expliqué dans cet article .
group :production do
gem "pg"
end
group :development, :test do
gem "sqlite3", "~> 1.3.0"
end
En fait, il est recommandé d’utiliser dans un environnement de développement/test un environnement aussi proche que possible de la production. Par conséquent, je vous suggère de basculer tous vos environnements vers PostgreSQL.
# replace gem "sqlite3" with
gem "pg"
Simone Carletti a raison et Joost aussi. Il vous suffit de grouper la gem sqlite3 ou de la supprimer entièrement de votre Gemfile. Heroku a juste besoin de savoir que vous ne voulez pas utiliser sqlite3 pour la production
Donc ça:
...
group :development, :test do
gem "sqlite3-Ruby", "~> 1.3.0", :require => "sqlite3"
end
...
Ou ca:
...
#No reference to sqlite3-Ruby
...
Si vous supprimez entièrement la référence, vous risquez de gâcher votre base de données locale si
Je suis resté coincé là-dessus pendant des heures à examiner chaque réponse, mais je ne pouvais pas obtenir suffisamment de détails pour que tout soit clair. Ce paginé m'a traversé tout. http://railsapps.github.io/Rails-heroku-tutorial.html
Bonne chance.
Après m'être cogné la tête contre ce problème, j'ai réalisé que je poussais la branche maître de mon dépôt vers heroku, alors que je faisais tous mes changements postgres dans mon deploy-postgres branche de mon dépôt!
J'ai fusionné mon deploy-postgres branch avec mon maître local [git checkout master; git merge deploy-postgres
] et pouvais ensuite exécuter git Push heroku master
conformément à la documentation heroku.