2011-07-23 7 views
7

Soy usuario de rieles/terminal y simplemente hice una instalación limpia de Lion + Xcode + Rails. A diferencia de antes (en Snow Leopard), ahora recibo un error al ejecutar rake db: migrate.Problema con el rake: "la base de datos de desarrollo no está configurada"

he clonado mi código a través de git que funcionaba bien y creó la base de datos comunicaba con el comando "createdb" pero cuando intento correr "rake db: migrate" en el terminal ahora viene con este error:

rake aborted! 
development database is not configured 

Mi archivo config/database.yml se ve a continuación en la sección de desarrollo que es exactamente como se veía antes en Snow Leopard donde funcionó bien, así que no sé si el error que estoy recibiendo está relacionado con Lion.

development: 
adapter: postgresql 
database: my_db 
username: rasmus 
encoding: utf8 
pool: 5 

¿Alguien puede ayudar, por favor?

Respuesta

1

¡Resuelto!

Mi "pía de instalación de gema" no se había ejecutado, así que básicamente me faltaba la gema de pg. Después de "gem install pg" en el terminal todo funciona bien.

18

Recibí el mismo error y en mi caso fue porque el database.yml no estaba sangrado correctamente. Todos los parámetros de configuración deben estar sangrados.

1

Aquí hay una respuesta PEBCAK para Googlers: verifique su Gemfile y asegúrese de haber especificado su gema de adaptador de base de datos en el grupo adecuado en su Gemfile. Tenía el mío definido para solo :production y :staging, y en un punto debo haber ejecutado manualmente gem install pg en mi máquina de desarrollo después de cambiar de mysql. Esta mañana he vaciado todas las gemas de la aplicación y las he vuelto a bundle install -ed, entonces no pude entender por qué la base de datos no se conectaba. Mover la especificación de gema pg fuera de cualquier grupo y ejecutar bundle install resolvió el problema.

4

Nota, asegúrese de seguir las convenciones de espaciado adecuadas. La configuración de la base de datos es consciente del espacio en blanco. Dos espacios por atributo funcionan bien. En el siguiente código, observe cómo cada atributo tiene dos espacios. No use pestañas. Si no usa espacios para los atributos, el rake no funcionará y arrojará el mismo error.

development: 
    adapter: sqlite3 
    database: db/development.sqlite3 
    pool: 5 
    timeout: 5000 

test: 
    adapter: sqlite3 
    database: db/test.sqlite3 
    pool: 5 
    timeout: 5000 

production: 
    adapter: postgresql 
    encoding: unicode 
    database: db/production 
    pool: 5 
    timeout: 5000 
    password: 
2

Es posible que también desee buscar errores de sintaxis en el archivo. Este es el error que aparecerá si tiene un error de sintaxis en su archivo config/database.yml e intenta hacer algo como iniciar el servidor web local o ejecutar rake db:migrate.

En mi caso, había eliminado accidentalmente el comentario de una línea en la parte superior del archivo y estaba viendo este error ya que la línea no comentada hacía que este fuera un archivo yml no válido.

0

Lo que funcionó en mi caso, habiendo intentado todo lo anterior cuando rake db: create failed, fue para asegurarme de que mi Rakefile estaba configurado correctamente.

Esto cumplió con su cometido:

require "sinatra/activerecord/rake" 
require 'sinatra/asset_pipeline/task' 

namespace :db do 
    task :load_config do 
    require "./app" 
    end 
end 
1

Una nota a otras personas que llegan a esta página pregunta: asegúrese de que está ejecutando el comando rake db correctamente, es decir:

rake db:migrate en lugar de rake db migrate

Cuestiones relacionadas