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

问题描述 投票:0回答: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

有人能帮忙吗?

ruby-on-rails-3 rake osx-lion
8个回答
20
投票

我遇到了同样的错误,在我的例子中,这是因为 database.yml 没有正确缩进。所有配置参数都应缩进。


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
投票

您可能还想在文件中查找语法错误。如果您的

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

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


1
投票

解决了!

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


1
投票

这是给 Google 员工的 PEBCAK 答案 - 检查您的 Gemfile 并确保您已在

Gemfile
的正确组中指定了数据库适配器 gem。我只为
:production
:staging
定义了我的定义,并且在从mysql切换后必须在我的开发机器上手动运行
gem install pg
。今天早上我清空了应用程序的所有宝石并重新
bundle install
-ed它们,然后无法弄清楚为什么数据库无法连接。将
pg
gem spec 移到任何组之外并运行
bundle install
解决了问题。


1
投票

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

rake db:migrate
代替
rake db migrate


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

0
投票

谢谢!

这个对我有用。我唯一没有 asset_pipeline 但是一旦我删除了 require-line rake 任务就没有问题了。

非常感谢

© www.soinside.com 2019 - 2024. All rights reserved.