2011-09-04 14 views
38

Acabo de actualizar a Rails 3.1 y la primera aplicación que he intentado implementar en Heroku ha encontrado un problema relacionado con el adaptador Postgres. Soy capaz de impulsar la aplicación de heroku pero luego cuando intento de migrar la base de datos me sale el siguiente error:Rails 3.1 - Empujando a Heroku - ¿Errores al instalar el adaptador Postgres?

heroku rake db: migrate

rake aborted! 
Please install the postgresql adapter: `gem install activerecord-postgresql-adapter` 
(pg is not part of the bundle. Add it to Gemfile.) 
Tasks: TOP => db:migrate => db:load_config 
(See full trace by running task with --trace) 

cuando intento instalar su sugirió que consigo:

ERROR: Could not find a valid gem 'activerecord-postgresql-adapter' (>= 0) in any repository 
ERROR: Possible alternatives: activerecord-postgis-adapter, activerecord-jdbcpostgresql-adapter, activerecord-postgresql-cursors, activerecord-jdbcmysql-adapter, activerecord-jdbcmssql-adapter 

que ya parece raro ... ¿y qué joya exacta debería instalar para conseguir esta cosa de funcionar si no lo que dicen que debería instalar ??

Cuando intento instalar la gema pg me sale:

Building native extensions. This could take a while... 
ERROR: Error installing pg: 
     ERROR: Failed to build gem native extension. 

/Users/jerometufte/.rvm/rubies/ruby-1.9.2-p180/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 
    ... 

estoy usando actualmente SQLite3. Cualquier ayuda muy apreciada, esto me desconcierta.

+0

Cómo configurar PostgreSQL para rieles y Heroku http: // robdodson .me/blog/2012/04/27/how-to-setup-postgresql-for-rails-and-heroku/ –

Respuesta

41

Opción 1:

Añadir pg a su Gemfile pero evita tratar de instalarlo localmente.

$ cat Gemfile 
... 
group :production do 
    # gems specifically for Heroku go here 
    gem "pg" 
end 

# Skip attempting to install the pg gem 
$ bundle install --without production 

Opción 2 (Debian/Ubuntu):

Añadir pg a su Gemfile pero primero instalar los requisitos previos.

$ cat Gemfile 
... 
group :production do 
    # gems specifically for Heroku go here 
    gem "pg" 
end 

# Install the pg gem's dependencies first 
$ sudo apt-get install libpq-dev 
# Then install the pg gem along with all the other gems 
$ bundle install 
+0

Genial, sí terminé haciendo el segundo. Si se vuelve molesto mantener postgresql localmente, entonces tal vez lo deje, espero no lamentar esa decisión. – tuddy

+0

Añade un comentario a tu 'README'. – yfeldblum

4

Definitivamente necesita pg en el Gemfile for Heroku.

Acerca del error que está obteniendo localmente: asegúrese de tener postgres instalado, ejecute gem install pq -- --with-pg-config=[path to wherever your pg-config binary is], luego realice la instalación del paquete.

Alternativamente, si su base de datos local está funcionando bien (ya sea porque estás usando SQLite o postgres-PR), se puede poner la línea gem 'pg' en su Gemfile en una producción llamada de grupo, entonces bundle install --without production localmente.

1

Más información actualizada: Tiene algo que ver con una versión diferente de la pg de la gema a nivel local.

Ya tenía pg en un grupo de producción (ejecuto sqllite localmente), pero Heroku aún vomitaba.

El problema se fue para mis nuevos carriles 3.1 aplicación cuando:

rm Gemfile.lock 
touch Gemfile 
bundle install 
git add . 
git commit -am "wiped Gemfile.lock re-ran bundle install" 
git push heroku master 

funcionó de maravilla cuando me encontré a continuación heroku run rake db:migrate

Cuestiones relacionadas