【问题标题】:Problem with rake: "development database is not configured"rake 问题:“未配置开发数据库”
【发布时间】:2011-10-11 17:15:33
【问题描述】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      注意,请务必遵循正确的间距约定。数据库配置是空格感知的。每个属性两个空格可以正常工作。在下面的代码中,请注意每个属性如何有两个空格。不要使用标签。如果属性不使用空格,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:
      

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

          解决了!

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

          【讨论】:

            【解决方案5】:

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

            【讨论】:

              【解决方案6】:

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

              rake db:migrate 而不是rake db migrate

              【讨论】:

                【解决方案7】:

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

                这完成了工作:

                require "sinatra/activerecord/rake"
                require 'sinatra/asset_pipeline/task'
                
                namespace :db do
                  task :load_config do
                    require "./app"
                  end
                end
                

                【讨论】:

                  猜你喜欢
                  • 2023-04-02
                  • 1970-01-01
                  • 2011-10-14
                  • 2013-04-17
                  • 2016-06-30
                  • 1970-01-01
                  • 1970-01-01
                  • 2011-03-31
                  • 2011-12-02
                  相关资源
                  最近更新 更多