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

Laravel执行php artisan db:seed时报1046 No database selected错误如何解决

解决方案

  • 第一步先清空Laravel配置缓存
    很多情况下修改完.env或database.php后,Laravel仍然读取旧的缓存配置导致报错,先依次执行以下命令:
    php artisan config:clear
    php artisan cache:clear
    
    执行完成后重新运行php artisan db:seed测试。
  • 检查Seeder和对应模型的连接配置
    你当前database.php中的sub数据库连接的database字段是空值,如果你的Seeder文件中显式指定了使用sub连接,或者对应Company模型里设置了protected $connection = 'sub',就会触发无数据库选中的错误。
    修复方式二选一:
    1. 给sub连接的database配置项填写对应的数据库名
    2. 移除Seeder/模型中错误的连接指定,使用默认的main连接
  • 强制指定连接运行填充
    可以直接在命令行指定用main连接运行填充,绕过默认连接配置问题:
    php artisan db:seed --connection=main
    
  • 确认表归属的数据库
    手动登录数据库确认caeru_local_companies表确实存放在caeru_main库中,避免表实际创建在其他库导致找不到的问题。
  • 验证配置加载是否正常
    可以临时添加测试路由打印当前数据库配置,确认配置读取正确:
    Route::get('/test-db', function () {
        return [
            '默认连接' => config('database.default'),
            'main连接数据库名' => config('database.connections.main.database')
        ];
    });
    
    访问该路由检查输出是否符合你的配置预期即可。

内容的提问来源于stack exchange,提问作者blue pine

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 09:15:03