2013-03-17 57 views
0

我试图对我的数据库进行更改,并首先在我的locahost中对其进行测试。任何人都可以看到我的错误是什么?使用名称空间更新数据库迁移

在LIB /任务/ update.rake:

namespace :update do 

    desc "Update country" 
    task :country_fix => :environment do 
    Guideline.where(:hospital => 'Maine Medical Center, Maine').each do |t| 
     t.update_attributes(hospital: 'Maine Medical Center') 

    end 

    end 
end 

当我运行

rake update:country_fix 

它给它看上去像(与--trace)的错误信息......

** Invoke update:country_fix (first_time) 
** Invoke environment (first_time) 
** Execute environment 
** Execute update:country_fix 
rake aborted! 
Connection refused - connect(2) 

回答

1

rake任务本身看起来不错。

Connection refused使我相信使用config/database.yml中的设置连接到数据库时出现问题。检查并查看与您的RAILS_ENV相对应的数据库正在运行。一个快速的方法来测试是:

rails db 

...这将打开基于当前的数据库配置的数据库控制台(mysqlpsql等)以及当前的RAILS_ENV

检查RAILS_ENV有:

echo $RAILS_ENV 

...,并确保你真的试图连接到数据库的预期。如果rails db不起作用,修复将取决于您的数据库是什么。如果它是PostgreSQL或MySQL或Mongo或大多数数据库,则必须使用适合您系统的任何内容启动服务器。如果是SQLite3,则不存在服务器;可能存在文件权限问题,但似乎这是一个不同的错误。

+0

谢谢。答案相当愚蠢。我没有开始solr。感谢您帮助我解决问题。 – tessad 2013-03-18 00:20:59

2
Connection refused - connect(2) 

你检查了你的database.yml文件吗?也许你的数据库服务器或用户配置错误。

编辑:

检查也是您的环境。如果您在生产服务器上运行rake任务,例如,你应该像这个前缀您的rake命令:

RAILS_ENV=production rake update:country_fix