You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 11如何阻止Telescope迁移在生产环境运行?

解决Laravel 11中Telescope迁移不跑生产环境的问题

方法1:给迁移文件加环境判断

发布Telescope迁移后,打开生成的迁移文件,在up()和down()方法最开头加上生产环境判断,直接跳过执行:

public function up()
{
    if (app()->environment('production')) {
        return;
    }

    // 原迁移逻辑...
}

public function down()
{
    if (app()->environment('production')) {
        return;
    }

    // 原回滚逻辑...
}

这样无论执行什么迁移命令,生产环境都会直接跳过这些迁移,不会创建Telescope相关表。

方法2:把Telescope迁移放到单独目录,部署时跳过

  1. 在database/migrations下新建telescope目录,将发布的Telescope迁移移至该目录。
  2. 本地开发时,执行指定目录的迁移:
php artisan migrate --path=database/migrations/telescope
  1. 生产部署时,仅执行默认目录的迁移(不指定--path参数时,默认只会运行database/migrations下的文件,不会递归子目录)。如果你的部署脚本有自定义迁移命令,确保不要包含这个telescope目录。

方法3:生产环境不安装Telescope(推荐)

如果生产环境完全不需要用Telescope做调试监控,直接把它从require移到composer.json的require-dev中:

{
    "require-dev": {
        "laravel/telescope": "^5.0"
    }
}

然后执行composer install --no-dev部署到生产,这样生产环境根本不会有Telescope的代码和迁移,从根源避免问题。


关于是否保留生产环境的Telescope表:完全没必要保留。Telescope主要用于本地/开发环境调试,生产环境保留这些表不仅会占用数据库空间,还可能记录敏感请求数据(比如用户输入、API密钥片段),存在隐私和安全风险。如果生产需要监控,建议使用专门的生产级监控工具,而非Telescope。

内容的提问来源于stack exchange,提问作者Gonçalo Marrafa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 11:48:15