Недавно я обновил старое приложение с 3.2.13 до 4.2.10. У меня приложение работает в режиме разработки, но любые команды rake или rails, которые я пытаюсь запустить, просто зависают / зависают. Окно терминала на секунду зависнет, а потом ничего, я даже не могу остановить процесс с помощью ctrl-c. Я много читал о запуске «пружинной остановки», чтобы исправить это, но в этом приложении пружина не установлена.
Выполнение команд с --trace не особенно полезно.
rails generate model Foo --trace мне ничего не дает, а rake db:migrate --trace дает:
** Invoke db:load_config (first_time)
** Execute db:load_config
** Execute db:migrate
перед замораживанием. Будем признательны за любые указатели в правильном направлении.
Ах, спасибо, это немного приблизило меня. У меня был неправильный пароль для моей базы данных в среде разработки, поэтому rake db: migrate теперь работает. Тем не менее, все еще не повезло с генерацией моделей / миграций. Я не уверен, сколько времени займет сбой, у меня было открыто одно окно терминала в течение 30 минут, и оно просто зависало.
Итак, команда наконец-то завершила работу и в конечном итоге создала миграцию. Хотя я догадывался, что попробовал RAILS_ENV = production rails g migration Foo И он запустился мгновенно, без проблем, так что похоже, что проблема связана со средой разработки. Я взял это приложение у другого разработчика, поэтому даже не знаю, с чего начать поиск причины замедления.
Может, он пытается подключиться к серверу БД на машине другого разработчика? :)
Нет, сейчас все указано в моей локальной базе данных. Я пробовал вставить среду production.rb в development.rb в надежде, что это будет быстрая конфигурация для решения проблемы, но это не имело никакого значения. Полагаю, мне нужно запустить приложение с помощью grep, чтобы узнать, не делает ли среда разработки что-нибудь странное.
Ага, удачи.





Какая у вас конфигурация базы данных? Сервер БД слишком долго отвечает? Что, если подождать несколько минут? Будет ли окончательно завершаться сбой задачи rake с сообщением некоторый? Не думаю, что он будет висеть бесконечно.