Laravel数据库迁移异常:.env指定库与实际迁移库不符
解决.env配置数据库与迁移目标不一致的问题
以下是几个常见的排查方向和解决方法:
检查配置缓存是否过期
多数框架会缓存配置文件以提升性能,如果你修改了.env但没清缓存,旧配置仍会生效。执行对应框架的清除缓存命令,比如Laravel下:php artisan config:clear php artisan config:cache也可以在代码中打印当前数据库配置(比如迁移文件里加
dd(config('database.connections.mysql'))),确认实际读取的数据库名是否为prueba2。排查数据库核心配置文件
打开框架的数据库配置文件(比如Laravel的config/database.php),检查连接配置是否硬编码了数据库名。确保数据库名是通过env()函数读取.env变量,比如:'database' => env('DB_DATABASE', 'default_database'),而不是直接写死
'database' => 'bdperformlead'。确认.env文件的有效性
- 确保.env文件在项目根目录,文件名是
.env(注意开头的点,部分系统会隐藏该文件),不是.env.example或其他变体。 - 检查
DB_DATABASE字段的拼写和格式,避免多余空格或引号,正确格式应为:DB_DATABASE=prueba2
- 确保.env文件在项目根目录,文件名是
检查环境专属.env文件
部分框架支持环境专属配置文件(如.env.local、.env.production),这类文件的优先级高于根目录的.env。如果当前环境加载了其他.env文件,且其中配置的数据库是bdperformlead,就会导致迁移指向错误数据库。查看框架的环境加载规则,确认当前生效的配置文件。检查迁移命令是否指定了连接
确认执行迁移时没有手动指定数据库连接参数,比如:# 这种命令会强制使用指定连接,忽略.env配置 php artisan migrate --database=bdperformlead确保执行的是默认迁移命令(如
php artisan migrate)。
内容的提问来源于stack exchange,提问作者Julio
相关产品推荐
相关产品推荐

