bundle exec - это команда Bundler для выполнения скрипта в контексте текущего пакета (того, что находится в Gemfile вашего каталога). rake db:migrate - это скрипт, где db - пространство имен, а migrate - заданное имя задачи.
Необходим ли пакет exec?
Запуск пакета exec и Bundler. требовать в то же время не проблема, поэтому безопасно использовать пакет exec, даже если он не нужен, пока в этом каталоге есть Gemfile, он не будет активировать драгоценные камни дважды.
Что делает пакет exec rails?
bundle exec вносит ряд изменений в среду оболочки, а затем полностью выполняет указанную вами команду. Он также изменяет Rubygems: запрещает загружать дополнительные драгоценные камни, не входящие в комплект. измените метод gem, чтобы он был неактивным, если gem, соответствующий требованиям, находится в комплекте, и вызывал Gem::LoadError, если это не так.
Как остановить выполнение пакета?
Обычно вы нажимаете Ctrl-C, чтобы остановить webrick, если он запущен без опции -d.
Почему я должен набирать пакет exec?
Bundler's bundle exec требует установочный файл Bundler, который позволяет Bundler выполнять все свои хаки по поиску файлов, когда вам что-то понадобится позже. Но в некоторых случаях вы можете обнаружить, что если ваши переменные среды уже правильно настроены, требования могут работать без помощи Bundler.