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

Laravel环境配置终端不更新,执行migrate无反应求助

解决Laravel迁移时显示"Nothing to migrate"且终端读取旧数据库名的问题

核心问题分析

终端会话缓存了旧的环境变量值,或是系统级环境变量覆盖了.env配置,导致artisan命令使用旧数据库名,无法识别对应数据库中未执行的迁移文件(而代码层面因Web请求会重新读取最新配置,所以能正常连接新数据库)

解决方案步骤

  • 重启终端会话
    关闭当前所有终端窗口,重新打开新的终端。Mac的bash/zsh会缓存环境变量,修改.env后旧会话不会自动刷新,新会话会重新读取系统和项目的环境配置。

  • 彻底清除Laravel配置缓存
    执行以下命令,同时手动清理缓存文件:

    php artisan config:clear
    php artisan cache:clear
    

    然后手动删除项目根目录下的bootstrap/cache/config.php文件(如果存在),确保没有残留的缓存配置。

  • 检查并清理系统级环境变量
    在终端执行以下命令,查看是否存在系统级的DB_DATABASE变量:

    echo $DB_DATABASE
    

    如果输出是旧的数据库名,说明系统环境变量覆盖了.env的配置,需要删除该变量:

    • 若使用zsh:编辑~/.zshrc文件,找到设置export DB_DATABASE=旧数据库名的行并删除,然后执行source ~/.zshrc生效
    • 若使用bash:编辑~/.bash_profile或~/.bashrc文件,做同样操作后执行source ~/.bash_profile(或对应文件)
  • 验证修复效果
    在新终端中运行:

    php artisan tinker
    

    然后执行env('DB_DATABASE'),确认输出为新的数据库名。之后再执行php artisan migrate,应该能正常识别并执行新的迁移文件。

内容的提问来源于stack exchange,提问作者Arvind K.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 14:28:24