Question

Je vais avoir beaucoup de difficultés à déployer une application simple de rails3.1. Il semble qu'il y ait deux problèmes principaux.

  1. En raison du pipeline d'actifs, les actifs ne sont pas chargement dans l'environnement de production.
  2. Je développe avec le sqlite3 db par défaut. Heroku utilise postgresql.

En fait, je veux que mon flux de travail de développement à déployer pour être aussi transparente que possible. Quelqu'un peut-il recommander la meilleure façon de mettre en place mon environnement de développement, de sorte que lorsque je $ git pousser Heroku, tout fonctionne.

J'imagine qu'il est préférable d'utiliser dans postgresql l'environnement de développement, le savoir Anyone d'un bon poste sur la façon de le mettre en place?

Faut-Unicorn I utilisation? mince?

dois-je utiliser d'autres pierres précieuses que je ne peux pas entendu parler?

Je me sens frustré parce que je suis arrivé au point où je peux construire des choses assez de fraîcheur dans l'environnement de développement, mais ont aucune idée de la façon d'obtenir l'application en ligne. Peut-être que je regarde tout faux. laissez-moi savoir.

Je reçois cette erreur lorsque je tente de faire:

group :production do
    gem 'pg' 
end

Installing pg (0.11.0) with native extensions /home/work/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:552:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

        /home/work/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb 
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
 --with-pg-config=/path/to/pg_config
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/home/work/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
    --with-pg
    --without-pg
    --with-pg-dir
    --without-pg-dir
    --with-pg-include
    --without-pg-include=${pg-dir}/include
    --with-pg-lib
    --without-pg-lib=${pg-dir}/lib
    --with-pg-config
    --without-pg-config
    --with-pg_config
    --without-pg_config
Était-ce utile?

La solution

Avant votre livraison exécutez ce qui suit à précompiler vos biens:

$> bundle exec rake assets:precompile

Vous ne devriez pas besoin de configurer quoi que ce soit pour la base de données Heroku autre que de mettre

gem 'pg' 

dans la section de production de votre Gemfile. Il figure tout à tout le reste lui-même.

Quelques beaux trucs que j'utilise un peu sont:

$> heroku db:push
$> heroku db:pull

Lisez à propos de Push & Pull

je développe localement sur MySQL, car il a le meilleur à mon humble avis final avant, mais vous seriez bien en utilisant sqlite3 ou postgres aussi, en fonction de combien vous voulez travailler dans les tableaux premières.

Autres conseils

J'ai eu ce problème, mais je l'ai changé la pile de cèdre et qui semblait résoudre le problème des actifs. En ce qui concerne la base de données, il suffit de spécifier

group :production do
    gem 'pg' 
end

dans le Gemfile

En fait, j'utilisé les informations à la fois de vos réponses pour le faire fonctionner. Mon problème a été résolu d'actifs au problème bundle exec rake assets:precompile et mon db a été résolu par

group :production do
    gem 'pg' 
end

et en ajoutant ceci:

group :development do
    gem 'sqlite3' 
end
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top