rake问题:“未配置开发数据库”

时间:2011-07-23 16:29:12

标签: ruby-on-rails-3 rake osx-lion

我是新手rails /终端用户,只是干净安装了Lion + Xcode + Rails。与以前不同(在Snow Leopard上),我现在遇到运行rake db:migrate。

的错误

我已经通过git克隆了我的代码,工作正常并使用“createdb”命令创建数据库但是当我尝试在终端中运行“rake db:migrate”时,它现在出现了这个错误:

rake aborted!
development database is not configured

我的config / database.yml文件在开发部分中如下所示,这与Snow Leopard之前的工作方式完全一致,所以不知道我现在得到的错误是否与Lion有关。

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

有人可以帮忙吗?

7 个答案:

答案 0 :(得分:19)

我得到了同样的错误,在我的情况下,这是因为database.yml没有正确缩进。所有配置参数都应缩进。

答案 1 :(得分:4)

请注意,请务必遵循正确的间距约定。数据库配置是空白感知的。每个属性两个空格工作正常。在以下代码中,请注意每个属性如何具有两个空格。不要使用标签。如果不对属性使用空格,则rake将不起作用并抛出相同的错误。

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 :(得分:2)

您可能还想查找文件中的语法错误。如果您的config/database.yml文件中存在语法错误,并且您尝试执行诸如启动本地Web服务器或运行rake db:migrate之类的操作,则会出现此错误。

在我的情况下,我不小心从文件顶部的一行删除了注释,我看到了这个错误,因为未注释的行使这个文件成为无效的yml文件。

答案 3 :(得分:1)

解决!

我的“gem install pg”还没有运行所以基本上我错过了pg gem。在终端“gem install pg”之后一切正常。

答案 4 :(得分:1)

以下是针对Google员工的PEBCAK答案 - 检查您的Gemfile并确保已在Gemfile中的相应组中指定了数据库适配器gem。我的定义仅限于:production:staging,并且在从mysql切换后,我的开发机器上必须手动运行gem install pg。今天早上我清空了应用程序的所有宝石并重新bundle install - 编辑它们,然后无法弄清楚数据库无法连接的原因。将pg gem规范移到任何组之外并运行bundle install即可解决问题。

答案 5 :(得分:1)

对于登陆此问题页面的其他人的说明:请确保您正确运行rake db命令,即:

rake db:migrate代替rake db migrate

答案 6 :(得分:0)

在我的情况下,在rake db:create失败时尝试了以上所有方法,确保我的Rakefile配置正确。

这完成了这项工作:

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

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