Использовать старую версию Rake - PullRequest
12 голосов
/ 05 июня 2011

У меня Rake-версия 0.9.1, но мне нужно использовать 0.8.7 для проекта, и я уверен, что у меня установлена ​​обе версии, но она всегда использует 0.9.1 по умолчанию. Есть ли способ указать, какую версию Rake использовать?

Я пытаюсь запустить это: rake db: drop db: create db: migrate db: seed и я получаю эту ошибку: Вы уже активировали рейк 0.9.1, но ваш Gemfile требует рейка 0.8.7. Рассмотрите возможность использования комплекта exec.

Ответы [ 4 ]

25 голосов
/ 05 июня 2011

Рейк поиска (или списка) гемов, должен сказать вам, какие версии установлены.

Вы можете вызывать rake с определенным номером версии в квадратных скобках с подчеркиванием.

$rake _0.7.3_

Это стандартная функция двоичных файлов, упакованных в гем.

18 голосов
/ 05 июня 2011

Вы можете указать версию Rake для использования в своем Gemfile:

gem 'rake', '0.8.7'

Хотя полученное сообщение об ошибке говорит само за себя ... вам нужно запустить:

bundle exec rake ...

... для того, чтобы использовать правильные грабли для выполнения ваших рейковых задач.

Подробнее о bundle exec: http://gembundler.com/man/bundle-exec.1.html

8 голосов
/ 01 августа 2012

Попробуйте выполнить gem uninstall rake, затем просто выберите версию, которую хотите удалить.

3 голосов
/ 18 декабря 2012

Это происходит потому, что вы используете рейк из системы. (последняя версия по умолчанию) Решение заключается в использовании команды:

bundle exec rake db:migrate

Также вы можете создать псевдоним. Потому что эта команда слишком большая и ее сложно написать.

echo "alias be='bundle exec'" >> ~/.bash_profile
source ~/.bash_profile

Тогда вы можете использовать следующую короткую команду:

be rake db:migrate
...