阻止 artisan 询问 "Do you really wish to run this command?"

Stop artisan from asking "Do you really wish to run this command?"

我是在我的本地主机上使用 Laravel 4、运行 的新手。我想知道如何让 artisan 跳过每次执行迁移命令时询问 Do you really wish to run this command? 的问题?我只想立即执行命令而不输入 y。并且也没有在迁移命令的末尾添加 --force

我知道提示在生产中非常重要,但我发现它有点烦人,尤其是在您学习教程时。我只是想将其关闭以使生活更轻松。

如有任何帮助,我们将不胜感激。

如果您将环境设置为 local,您将不会收到警告问题,因为只有当 Laravel 检测到您在 production,其中 运行 错误迁移可能很危险。您只需在 bootstrap/start.php 文件中添加以下内容:

$env = $app->detectEnvironment(array(
    // The array value should be your hostname
    'local' => array('your-machine-name'),
));

以上将允许 Laravel 在检测到您的计算机主机名与您指定的主机名匹配时将环境设置为 local,从而避免显示消息。


有关配置环境和从中获得的优势的更多信息,请阅读 Laravel Environment Configuration Docs

为 Bogdan 的回答和评论添加更多内容。

如果您不熟悉 Laravel 中环境的概念,它可以根据您的应用程序 运行 所在的环境指定不同的配置。例如,您将拥有不同的数据库本地环境中的凭据比实时服务器(生产环境)。

所以你不应该使用 'local' => array(gethostname()) 的一个原因是这会使你的环境 local 无论你在哪里 运行 这个(你的本地机器,测试环境或生产).

这是确定环境的首选方法

$env = $app->detectEnvironment(function() { 
    return getenv('APP_ENV') ? : 'production'; 
});

因此,除非您在 VHOST 文件中设置了环境变量,否则它将默认为生产环境。

但由于您无论如何都无法指定环境变量,我建议您坚持使用 Bogdan 的解决方案。