J'essaie de précompiler les actifs pour que mon application se déploie sur Heroku, mais je dois suivre l'erreur.
Lors de l'exécution:
Rails_ENV=production bundle exec rake assets:precompile
Erreur:
/bin/rake assets:precompile:all Rails_ENV=production Rails_GROUPS=assets
rake aborted!
Please install the postgresql adapter: `gem install activerecord-postgresql-adapter` (pg is not part of the bundle. Add it to Gemfile.)
Parce que j'utilise en développement SQLite et en production Postgresql le Gemfile suivant
gem "Rails", "~> 3.1.0"
group :production do
gem 'pg'
end
group :development, :test do
gem 'sqlite3'
end
gem 'sass-Rails', "~> 3.1.0"
group :assets do
gem 'coffee-Rails', "~> 3.1.0"
gem 'uglifier'
gem 'compass', '~> 0.12.alpha.0'
gem 'html5-boilerplate'
end
J'ai beaucoup essayé mais je n'arrive pas à faire fonctionner ça.
Je ne sais pas si c'est important mais mon database.yml ressemble à:
production:
adapter: postgresql
Host: localhost
database: db
encoding: unicode
username: user
password: ''
Ancienne question, mais la réponse acceptée ne répond pas vraiment à la question - et je viens de trouver cela dans une recherche, donc je suppose que c'est pertinent.
La raison de l'erreur est que gem 'pg'
fait partie du groupe des gemmes de production.
Lorsque vous exécutez rake assets:precompile
l'environnement de production est accessible. Il essaie donc de charger l'environnement de production mais vous n'avez pas toutes les dépendances installées.
Fonctionnement Rails_ENV=production bundle exec Rails server
vous donnerait probablement une erreur similaire.
Je peux penser à deux solutions différentes
1) Regardez si vous avez un .bundle/config
fichier à la racine de votre application. Si c'est le cas, vérifiez si elle indique WITHOUT :production
ou similaire. Supprimez cette ligne ou l'ensemble .bundle
répertoire et réexécutez bundle
.
2) dans Gemfile
gem :development, :production do
gem 'pg'
end
tout en supprimant le :production
groupe
réexécutez bundle
Désolé de revenir sur de vieux trucs ...