Рельсы переустанавливаются каждый раз, когда я толкаю к ​​героку - PullRequest
0 голосов
/ 02 сентября 2010

Когда я пишу
git push heroku master

мое приложение успешно отправлено на heroku, но оно занимает около 30 секунд в минуту, потому что оно говорит: «Установка gem rails 2.83» и что «Railsне объявлено ни в .gems, ни в Gemfile. "

Как это исправить?Что такое файл .gems и где он находится?

Большое спасибо.Я совершенно новичок в разработке на рельсах и с герокой.

1 Ответ

6 голосов
/ 02 сентября 2010

Heroku имеет документ, описывающий «ПРЕДУПРЕЖДЕНИЕ: Обнаруженные рельсы» не объявляются ни в сообщении .gems, ни в Gemfile, а также в месте, назначении и синтаксисе .gems файла . Его URL указан сразу после самого предупреждающего сообщения:

-----> Heroku receiving push
-----> Rails app detected
-----> WARNING: Detected Rails is not declared in either .gems or Gemfile
       Scheduling the install of Rails 2.3.8.
       See http://docs.heroku.com/gems for details on specifying gems.

Во-первых, вы должны прислушаться к совету, чтобы объявить ваши гем-зависимости. Поскольку вы используете Rails 2.3, вероятно, проще просто использовать .gems файл вместо Gemfile (хотя, если вам нравится идея Bundler , вы все равно можете использовать Gemfile с рельсами 2.3 ):

# .../project-root/.gems

rails -v 2.3.8
# List any other required gems (and their versions) here

(добавьте и зафиксируйте файл, чтобы Heroku увидел его в следующий раз, когда вы нажмете на него)

Во-вторых, «установка драгоценных камней после каждого нажатия» лежит в основе работы Heroku. Они берут дерево в конце вашей запрошенной истории и компилируют его в «слаг» только для чтения , который может быть быстро развернут на серверах их внутренней сети. Это меняет некоторое «время подталкивания» на «время развертывания».

Такое поведение «строить с нуля при каждом нажатии» было бы довольно раздражающим для обучения / исследования / разработки, когда между небольшими изменениями обычно делаются только небольшие, постепенные изменения приложения, но, кажется, есть способ избежать этого в этих случаях. Просто используйте файл .gems. Когда заявленные гем-зависимости приложения не изменяются от одного нажатия к другому (то есть без изменений в файле .gems), они, кажется, пропускают этап «установки всех ваших гем-зависимостей с нуля».

Итог: Включите файл .gems в ваш проект. Следующее нажатие все равно будет проходить через «Установка рельсов драгоценных камней», но последующие нажатия должны пропустить этот шаг (если вы не измените свой файл .gems, чтобы изменить свой набор зависимостей от драгоценных камней).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...