我有一个全新的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')
));
另外,如果我将生产环境设置为不属于我的机器的主机名,我仍然会遇到同样的问题。
答案 0 :(得分:33)
只需为与给定环境匹配的主机指定机器名称,然后laravel
将自动检测环境(默认为production
),例如:
$env = $app->detectEnvironment(array(
//'local' => array('homestead'),
'local' => array('*.dev', gethostname()),
'production' => array('*.com', '*.net', 'www.somedomain.com')
));
答案 1 :(得分:7)
将您的环境设置为生产以外的其他方式是正确的方法。 See the accepted answer.
但是,如果您正在寻找 A Quick Fix ,您可以使用(在UNIXoid环境中):
yes | php artisan migrate:refresh
所有这一切都是发送" y"对于程序来说,就像你按下了#34; y"提示时。
我觉得这比--force
好一点,因为并非所有的工匠命令都支持力量。
答案 2 :(得分:2)
如果有人在lumen
安装中搜索类似问题时偶然发现了这个问题,我建议您查看.env
文件并添加APP_ENV=local
那里。它解决了我的问题。
答案 3 :(得分:1)
希望这会帮助别人。我突然遇到一个问题,我正在构建的开发站点停止连接到数据库说:
PDOException SQLSTATE[HY000] [1049] Unknown database 'forge' failed
在尝试运行artisan migrate:refresh
等时,我也收到了诸如OP之类的错误,错误表明我正在制作等等。
经过多次刮擦(!)我发现在/bootstrap/start.php中设置的主机名值是错误的,因为我的主机名在我的macbook pro上已经改变了!?我不知道它是怎样的,但它从RobMacbookPro2.local
变为RobMacbookPro.local
。这意味着它重新投入生产,因此使用标准DB = forge加载不正确的database.php文件(这是错误的)
查看本指南: http://laravel.com/docs/4.2/configuration
特别注意代码:
<?php
$env = $app->detectEnvironment(array(
'local' => array('your-machine-name'),
));
在Mac上,可能是linux?您可以在终端中键入# hostname
来确定您的主机名。
希望能节省一些时间!