Laravel 4.2 говорит, что мое приложение находится в производстве. Как отключить это?
У меня есть новая установка Laravel. При запуске php artisan migrate:refresh
появляется сообщение Application In Production! Do you really wish to run this command?'
Я знаю, что это обновление в 4.2, однако я не могу понять, как отключить его.
Я обнаружил в источнике, что он исходит из Illuminate\Console\ConfirmableTrait
и запускается, если этот тест проходит: if ($this->getLaravel()->environment() == 'production')
Я не уверен, почему он думает, что я нахожусь в производстве. Я никогда не настраивал среды. Это обнаружение среды по умолчанию, которое я до сих пор использую.
$env = $app->detectEnvironment(array(
'local' => array('homestead')
));
Кроме того, если я устанавливаю производственную среду на имя хоста, которое не является моей машиной, у меня все еще такая же проблема.
Ответы
Ответ 1
Просто укажите имя машины для хоста, которое соответствует заданной среде, затем laravel
будет автоматически определять среду (по умолчанию - production
), например:
$env = $app->detectEnvironment(array(
//'local' => array('homestead'),
'local' => array('*.dev', gethostname()),
'production' => array('*.com', '*.net', 'www.somedomain.com')
));
Прочитайте документацию и этот ответ.
Ответ 2
Настройка среды для чего-то другого, кроме производства, - это правильный путь. См. принятый ответ.
Но если вы ищете A Quick Fix, вы можете использовать (в средах UNIXoid):
yes | php artisan migrate:refresh
Все это отправляет поток "y" в программу, который действует так, как вы нажимали "y" при появлении запроса.
Я считаю, что это немного лучше, чем --force
, поскольку не все команды ремесленников поддерживают силу.
Ответ 3
Если кто-то наткнулся на этот вопрос во время поиска аналогичной проблемы в установке lumen
, я бы предложил проверить файл .env
и добавить APP_ENV=local
, если его еще нет. Он решил мою проблему.
Ответ 4
Надеюсь, это поможет кому-то другому. У меня внезапно возникла проблема, когда мой сайт-разработчик перестала подключаться к БД, говоря:
PDOException SQLSTATE[HY000] [1049] Unknown database 'forge' failed
Я также принимал ошибки, такие как OP при попытке запустить artisan migrate:refresh
и т.д., ошибка заключалась в том, что я был в производстве и т.д. и т.д.
После многократной царапины (!) я обнаружил, что значение моего имени хоста, установленное внутри /bootstrap/start.php, было неправильным, потому что мое имя хоста изменилось на моем macbook pro!? Я понятия не имею, как это изменилось от чего-то вроде RobMacbookPro2.local
до RobMacbookPro.local
. Это означало, что он вернулся к производству, загрузив неверный файл database.php со стандартной DB = forge (что было неправильно)
Проверьте это руководство:
http://laravel.com/docs/4.2/configuration
Обратите особое внимание на код:
<?php
$env = $app->detectEnvironment(array(
'local' => array('your-machine-name'),
));
На mac и, возможно, linux? вы можете определить свое имя хоста, набрав # hostname
в терминале.
Надеюсь, что это кому-то поможет!
Ответ 5
Рассмотрим php artisan make::model name -m
. Это создает модель и миграцию.