8

我是新手 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

有人可以帮忙吗?

4

7 回答 7

20

我遇到了同样的错误,就我而言,这是因为 database.yml 没有正确缩进。所有配置参数都应该缩进。

于 2011-10-28T19:35:49.947 回答
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:
于 2014-02-27T18:41:22.957 回答
2

您可能还想在文件中查找语法错误。如果您的文件中有语法错误config/database.yml并且您尝试执行诸如启动本地 Web 服务器或运行rake db:migrate.

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

于 2014-12-12T15:20:29.757 回答
1

解决了!

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

于 2011-07-24T15:23:38.693 回答
1

这是针对 Google 员工的 PEBCAK 答案 - 检查您的 Gemfile 并确保您已在Gemfile. 我只为:productionand定义了我的,并且在从 mysql 切换后,:staging有一次必须在我的开发机器上手动运行。gem install pg今天早上我清空了应用程序的所有 gem 并重新bundle install编辑它们,然后无法弄清楚为什么数据库无法连接。将pggem 规范移出任何组并运行bundle install解决了该问题。

于 2013-03-08T20:28:17.650 回答
1

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

rake db:migrate代替rake db migrate

于 2018-02-08T14:32:41.317 回答
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
于 2015-08-30T05:02:14.880 回答