2012-05-03 2 views
0

Я следую за railscast, где Райан настраивает VPS. Но мне нужно установить mysql вместо postgresql.Ошибка при работе rake db: migrate

Когда я запускаю развертывание крышки: холодная команда, все, кажется, работает нормально, пока не запустит пакет, который не работает при попытке установить драгоценный камень mysql2.

поэтому я вошел в систему и установил его вручную (база данных уже была настроена).

, но когда я запускаю грабли БД: мигрировать команды я получаю эту ошибку:

rake aborted! 
database configuration does not specify adapter 

Tasks: TOP => db:migrate => db:load_config 

в database.yml файле У меня есть следующие

production: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    database: blog_production 
    pool: 5 
    username: blog 
    password: ***** 
    host: localhost 
    socket: /var/run/mysqld/mysqld.sock 

Я редактировал сокет от значения по умолчанию, добавил и удалил строку хоста, и вручную установил драгоценный камень, но ничто не заставляет его работать!

ответ

5

Это обычно происходит, когда сценарии развертывания или текущий пользователь в VPS не задали переменную среды RAILS_ENV. Затем по умолчанию используется «разработка», и ваша база данных.yml не будет иметь никакой конфигурации для этой среды. Поэтому попробуйте

RAILS_ENV=production bundle exec rake db:migrate --trace 

вместо этого.

+0

Спасибо, я пробовал это сейчас, но я получаю эту ошибку ... rake aborted! undefined метод 'accept 'for nil: NilClass – Lievcin

+0

Можете ли вы запустить его с аргументом trace и опубликовать результат? Я обновил ответ. – moritz

+0

Я решил проблему, заменив файл database.yml, возможно, возникла некоторая проблема с отступом в этом файле, но теперь она запускала миграции без проблем ... круто! – Lievcin

2

Коррумпированный файл yml решил это для меня.

Переименован и воссоздан файл database.yml, и он сработал.