Отключение определенных групп рейковых задач - PullRequest
2 голосов
/ 18 ноября 2010

Я работаю с большим приложением Rails, и мне было поручено отключить rake-задачи, которые могут быть вредными при запуске в наших производственных средах, таких как db: migrate, reset и т. Д. Однако я не уверенКакой лучший способ действий здесь?

Пока что мое решение состоит в том, чтобы поместить подобное утверждение в верхнюю часть задачи database.rake

if ENV['RAILS_ENV'] == 'development' || ENV['RAILS_ENV'] == 'test'

Теперь, очевидно, это отключает всезадачи по сбору базы данных для всех сред, кроме разработки и тестирования.Тем не менее, я чувствую, что это хак, и мне это не нравится.Может кто-нибудь придумать лучший способ решения этой проблемы, или это решение создает какие-то большие проблемы, которые я, возможно, не понимаю?

РЕДАКТИРОВАТЬ: побочный вопрос к проблеме, с которой я столкнулся.Когда я установил свой RAILS_ENV на «производство» через

export RAILS_ENV=production

, это работало нормально, однако мне нужно было вернуть мою среду в среду по умолчанию.Когда я пытаюсь

export RAILS_ENV=

, я получаю сообщение об ошибке

No such file or directory - project_path/config/environments/.rb

Кто-нибудь знает, как восстановить среду по умолчанию?

Ответы [ 2 ]

1 голос
/ 18 ноября 2010

Что касается вашего дополнительного вопроса, среда по умолчанию - "разработка".Поэтому вы можете попробовать:

export RAILS_ENV=development

Что вы делаете, это назначаете пустую строку для RAILS_ENV (которая отличается от того, чего она вообще не существует, что вам и нужно).Чтобы сделать это, попробуйте:

export -n RAILS_ENV

Кроме того, если вы обнаружите, что переключаете среды, подобные этой, для одноразовых команд (таких как задачи rake и т. Д.), Вы можете попробовать НЕ экспортировать переменную, а просто определитьвызов команды:

RAILS_ENV=production rake db:migrate

Таким образом, после завершения команды у вас нет экспортированной переменной RAILS_ENV;думайте об этом, как об определенном только для этого конкретного вызова граблей (или любой команды, которую вы хотели).

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