Laravel 4.2说我的应用程序正在生产中。我怎么关掉这个?

时间:2014-06-06 23:57:06

标签: php laravel laravel-4

我有一个全新的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')

));

另外,如果我将生产环境设置为不属于我的机器的主机名,我仍然会遇到同样的问题。

4 个答案:

答案 0 :(得分:33)

只需为与给定环境匹配的主机指定机器名称,然后laravel将自动检测环境(默认为production),例如:

$env = $app->detectEnvironment(array(

    //'local' => array('homestead'),

    'local' => array('*.dev', gethostname()),
    'production' => array('*.com', '*.net', 'www.somedomain.com')
));

Read the documentationthis answer

答案 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来确定您的主机名。

希望能节省一些时间!