Подтвердить что ты не робот

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')

));

Кроме того, если я устанавливаю производственную среду на имя хоста, которое не является моей машиной, у меня все еще такая же проблема.

4b9b3361

Ответ 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. Это создает модель и миграцию.