2015-04-28 4 views
0

Я пытаюсь создать задачу rake, которая запрашивает API и добавляет записи в таблицу. Однако я не могу получить доступ к этой таблице (я получаю следующую ошибку).Rails - не удается получить доступ к таблице из заданий rake

ActiveRecord::StatementInvalid: Could not find table 'exchange_rates' 

Мой код:

namespace :query_api do 

    task get_currency_values: :environment do 

    exchange_rate = ExchangeRate.new 
    #some other code 

    end 

end 

Код находится в

lib/tasks/query-api.rake 
+1

Тупой вопрос, но я должен спросить. Существует ли таблица exchange_rates? –

+0

Он появляется в schema.rb, и сервер работает, поэтому я предполагаю, что таблица существует. – octavian

+2

Возможно, таблица существует в одной среде (скажем, «разработка»), но не другая (скажем, «производство»)? Если это так, вам может потребоваться выполнить миграцию db в среде, где ее не существует, чтобы создать ее. –

ответ

1

согласен с этими другими комментариями. Это простая ошибка. Если вы загрузите консоль рельсов (rails c) в окружающую среду (development или production или что-то еще) и введите ExchangeRate.new, тогда вы должны увидеть ту же ошибку.

Оттуда исследуйте соединение с БД и убедитесь, что оно действительно работает.

Кроме того, проверьте, какие миграции работать в среде, где вы испытываете ошибку с rake db:migrate:status

+0

Спасибо, это действительно проблема (запись была сохранена только в производстве). Как я могу сделать так, чтобы запись также сохранялась в процессе разработки? – octavian

+0

Проверьте, чтобы на ваших схемах 'production' и' development' выполнялись одинаковые миграции, и они совпадают. Если они не совпадают (и, похоже, это не так), то это скажет вам разницу. – jefflunt

Смежные вопросы