Pregunta

Tengo muchos problemas para implementar una aplicación Simple Rails3.1. Parece que hay dos problemas principales.

  1. Debido a la tubería de activos, los activos no se están cargando en el entorno de producción.
  2. Desarrollo con el DB SQLite3 predeterminado. Heroku usa PostgreSQL.

Básicamente, quiero que mi flujo de trabajo de desarrollo a despliegue sea lo más fluido posible. ¿Alguien puede recomendar la mejor manera de configurar mi entorno de desarrollo, de modo que cuando I $ git presione a Heroku, todo funcione.

Me imagino que es mejor usar PostgreSQL en el entorno de desarrollo, ¿alguien sabe de una buena publicación sobre cómo configurar esto?

¿Debo usar unicornio? ¿delgada?

¿Debería usar otras gemas de las que no haya oído hablar?

Me siento frustrado porque he llegado al punto en que puedo construir cosas geniales en el entorno de desarrollo, pero no tengo idea de cómo obtener la aplicación en línea. Tal vez estoy mirando todo esto mal. hágamelo saber.

Recibo este error cuando intento hacer:

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
¿Fue útil?

Solución

Antes de su compromiso, ejecute lo siguiente para precompilar sus activos:

$> bundle exec rake assets:precompile

No debería necesitar configurar nada para la base de datos Heroku que no sea poner

gem 'pg' 

en la sección de producción de su archivo gem. Lo considera todo el resto por sí solo.

Algunos buenos trucos que uso bastante son:

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

Leer sobre Push & Pull aquí

Desarrollo localmente en MySQL ya que tiene el mejor front -end en mi humilde opinión, pero estaría bien usando SQLITE3 o Postgres también, dependiendo de cuánto quiera trabajar en tablas crudas.

Otros consejos

Tuve ese problema, pero cambié a la pila de cedro y eso pareció resolver el problema de los activos. En cuanto a la DB, solo especifique

group :production do
    gem 'pg' 
end

en el archivo gem

En realidad, utilicé la información de ambas respuestas para que funcione. Mi problema de activos se resolvió con el bundle exec rake assets:precompile y mi problema de DB fue resuelto por

group :production do
    gem 'pg' 
end

Y también agregando esto:

group :development do
    gem 'sqlite3' 
end
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top