我是新手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
有人可以帮忙吗?
答案 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