В Laravel 4 среда конфигурации по умолчанию – «производство».  Это означает, что если вы запустите команду artisan без опции --env , она предполагает конфигурацию производства.  Это можно увидеть в \Illuminate\Foundation\Application::detectWebEnvironment() который вызывается detectConsoleEnvironment() когда не --env опция --env . 
Такое поведение стало риском в моей среде разработки. Очень легко забыть опцию –env и, скажем, непреднамеренно запустить миграцию в вашей производственной базе данных. (Да, это произошло, но, к счастью, это было незначительное изменение.) Я близок к простому переименованию конфигурации моей производственной среды в «реальное производство», но похоже, что должно быть более элегантное решение.
TL; DR
Как изменить среду по умолчанию в Laravel 4, так что команды мастеров не запускаются по умолчанию?
Спасибо Антонио за то, что он попросил меня пересмотреть обнаружение домена.
 $env = $app->detectEnvironment(array( ( // Empty string is to set development as the default environment for // artisan commands. 'development' => array('dev.foo.com', ''), 'test' => array('test.foo.com'), 'production' => array('www.foo.com', 'foo.com'), )); 
  Добавление '' в качестве домена разработки эффективно устанавливает разработку как среду по умолчанию для команд-ремесленников, по-видимому, потому, что имя домена пустое, когда приложение вызывается из командной строки.  Я тестировал и, кажется, что-то == false будет работать.  Я также подтвердил, что это не мешает обнаружению среды производства или тестирования. 
В bootstrap / start.php вы можете установить среду:
 $env = $app->detectEnvironment(function() { return 'development'; }); 
Но вы можете делать много вещей, таких как:
 $env = $app->detectEnvironment(array( 'local' => array('your-machine-name'), )); 
А также
 $env = $app->detectEnvironment(function() { return $_SERVER['MY_LARAVEL_ENV']; }); 
Вы можете попробовать изменить файл app / start.php, чтобы добавить второй параметр в желаемой среде как ИСТИНА, т.е. включить локальную среду, это выглядит
 $env = $app->detectEnvironment(array( 'local' => array('homestead',true), )); 
Одно из самых элегантных решений, которые я нашел, – это сообщение в блоге: http://stevegrunwell.com/blog/laravel-application-environment/
Преимущества:
start.php . environment.php .  $env = $app->detectEnvironment(array( 'staging' => array('baichebao_test'), 'local' => array('*.local', '*'), )); 
как и мой пример, поместите среду по умолчанию в последний элемент массива и добавьте «*» к его имени хоста менеджера. и он работает в laravel 4.X
В Laravel 4.2 вы не сможете совершать деструктивные миграции ремесленников, не будучи вызванными:
Операции разрушительной миграции теперь требуют подтверждения или -force при запуске на производстве.
Журнал изменений для 4.2 здесь