我正在尝试对我的数据库进行更改,并首先在我的locahost中测试它。谁能看出我的错误是什么?
在lib / tasks / 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)
答案 0 :(得分:2)
Connection refused - connect(2)
你检查过你的database.yml文件了吗?也许您的数据库服务器或用户配置错误。
修改强>
检查您的环境。例如,如果在生产服务器中运行rake任务,则应在rake命令前加上这样的前缀:
RAILS_ENV=production rake update:country_fix
答案 1 :(得分:1)
Rake任务本身看起来很好。
Connection refused
让我相信使用config/database.yml
中的设置连接到数据库时出现问题。检查您的RAILS_ENV
对应的数据库是否正在运行。测试的一种快速方法是:
rails db
...将根据您当前的数据库配置和当前的mysql
打开数据库控制台(psql
,RAILS_ENV
等)。
检查RAILS_ENV
:
echo $RAILS_ENV
...并确保您真正尝试连接到预期的数据库。
如果rails db
不起作用,则修复程序将取决于您的数据库。如果它是PostgreSQL或MySQL或Mongo或大多数数据库,则必须使用适合您系统的任何内容启动服务器。如果是SQLite3,则没有服务器;可能存在文件权限问题,但似乎这是一个不同的错误。