2013-03-17 2 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

граблями задача выглядит отлично.

Connection refused заставляет меня поверить, что проблема связана с базой данных, используя настройки в вашем config/database.yml. Проверьте, работает ли база данных, соответствующая вашему RAILS_ENV. Быстрый способ проверить это:

rails db 

... который будет открыть базу данных консоли (mysql, psql и т.д.) на основе текущей конфигурации БД и текущий RAILS_ENV.

Проверьте ваш RAILS_ENV с:

echo $RAILS_ENV 

... и убедитесь, что вы на самом деле пытаетесь подключиться к ожидаемому базе данных.

Если rails db не работает, исправление будет зависеть от того, что ваша база данных. Если это PostgreSQL или MySQL или Mongo или большинство баз данных, вам нужно запустить сервер, используя то, что подходит для вашей системы. Если это SQLite3, нет сервера; могут возникнуть проблемы с разрешением файла, но похоже, что это была бы другая ошибка.

+0

спасибо. Ответ был довольно глупым. Я не начал соло. Спасибо, что помогли мне разобраться. – tessad

2
Connection refused - connect(2) 

Вы проверили ваш файл database.yml? Возможно, у вас неправильная конфигурация вашего сервера базы данных или пользователя.

Edit:

Проверьте также ваше окружение. Если запустить задачу грабли в производственном сервере, например, вы должны префикс вашей команды грабли, как это: сам

RAILS_ENV=production rake update:country_fix