2011-03-02 12 views
9

Tengo todo instalado. Pero cuando corro "rake db: crear", me sale el siguiente:Instalación de PostgreSQL con Ruby on Rails en Mac OS X

Ken-Vogts-MacBook:sixmonths ken$ rake db:create 
(in /Users/ken/sixmonths) 
rake aborted! 
no such file to load -- pg 

Aquí es mi database.yml:

development: 
    adapter: postgresql 
    encoding: unicode 
    database: sixmonths_development 
    pool: 5 
    username: postgres 
    password: xxxxxxxx 

test: 
    adapter: postgresql 
    encoding: unicode 
    database: sixmonths_test 
    pool: 5 
    username: sixmonths 
    password: xxxxxxxx 

production: 
    adapter: postgresql 
    encoding: unicode 
    database: sixmonths_production 
    pool: 5 
    username: sixmonths 
    password: xxxxxxxx 

puedo ver pág se instala cuando corro: Lista joya

I intentaron sustituir "postgresql" con "PG" por otro puesto en stackoverflow, pero resultó en esto:

Ken-Vogts-MacBook:sixmonths ken$ rake db:create 
(in /Users/ken/sixmonths) 

Parece c Ool, ¿verdad?

Nope. A continuación, lo intento "rake db: schema: dump" y me sale esto:

Ken-Vogts-MacBook:sixmonths ken$ rake db:schema:dump 
(in /Users/ken/sixmonths) 
rake aborted! 
Please install the pg adapter: `gem install activerecord-pg-adapter` (no such file to load -- active_record/connection_adapters/pg_adapter) 

Por supuesto, no hay un "adaptador-activerecord PG". ¿Qué tengo que hacer para que esto funcione?

Contenido

Gemfile:

source 'rubygems.org' 
gem 'rails', '3.0.0' 
# Bundle edge Rails instead: 
# gem 'rails', :git => 'git://github.com/rails/rails.git' 
gem 'sqlite3-ruby', :require => 'sqlite3' 
# gem 'unicorn' 
# gem 'capistrano' 
# gem 'ruby-debug' 
# Bundle the extra gems: 
# gem 'bj' 
# gem 'nokogiri' 
# gem 'sqlite3-ruby', :require => 'sqlite3' 
# gem 'aws-s3', :require => 'aws/s3' 
# Bundle gems for the local environment. Make sure to 
# put test-only gems in this group so their generators 
# and rake tasks are available in development mode: 
# group :development, :test do 
    # gem 'webrat' 
# end 
+0

¿Su Gemfile' tener 'pg'' joya '' en ella? –

+0

@dmarkow Aquí está mi Gemfile: (véase el siguiente comentario) –

+0

fuente 'http://rubygems.org' Gem 'rieles', '3.0.0' # canales del borde Bundle en su lugar: # Gem 'rieles' ,: git => 'git: //github.com/rails/rails.git' joya 'sqlite3-ruby',: require => 'sqlite3' # joya 'unicornio' # joya 'Capistrano' # joya 'ruby-debug' # Bundle las gemas adicionales: # joya 'BJ' # joya 'nokogiri' # joya 'sqlite3-ruby',: require => 'sqlite3' # joya 'AWS-s3',: require => 'AWS/s3' # gemas Bundle para el entorno local. Asegúrese de # puso de prueba de sólo gemas en este grupo por lo que sus generadores tareas # y rastrillo están disponibles en el modo de desarrollo: # grupo: desarrollo,: prueba Do # joya 'webrat' # fin –

Respuesta

12

Rails 3 sólo le permitirá acceder a las gemas que especifique en su Gemfile, por lo que incluso si usted tiene instalado en sus gemas de todo el sistema haciendo una gem install pg, que ganó' ser capaz de encontrarlo

Agregue gem 'pg' a su Gemfile, ejecute bundle install, y ya estará listo para funcionar.

+1

he añadido joya ' pg 'según sus instrucciones. El adaptador que funciona es "postgresql", no "pg" para aquellos que lean sobre mis intentos de agitación anteriores. Ahora a aprender sobre postgresql (soy un chico de mysql). –

+5

Sí, aunque la gema es 'pg', todavía usas' postgresql' en tu 'database.yml' –

0

He intentado muchas cosas que vi como soluciones en otros lugares, pero lo único que trabajó para mí estaba reemplazando

gem 'sqlite3' 

con

gem 'pg' 

en Gemfile. Mi database.yml tiene el mismo aspecto que el tuyo.

Ahora ambos >rake db:create y >rake db:migrate funcionan.

Esto está en OSX Snow Lepoard, Rails 3.0.7, Postgres 9.0.

Y la salida de:

gem list --local 

es

pg (0.11.0) 
polyglot (0.3.1) 
postgres-pr (0.6.3) 
rack (1.2.2, 1.0.1) 
rack-mount (0.7.2, 0.7.1, 0.6.14) 
rack-test (0.6.0, 0.5.7) 
rails (3.0.7, 3.0.5, 2.3.5, 2.2.2, 1.2.6) 
Cuestiones relacionadas