执行 db:seed 如果出现 TableSeeder does not exist 的解决方案

最近在使用 Laravel 开发一个项目,测试中需要增加数据库基础数据动作,当第一次执行完 php artisan db:seed 后,增加新的 seeder 文件时执行会报错。错误信息如下 [ReflectionException] Class ***TableSeeder does not exist

首先我已经确保新的 seeder 文件和全局 database seeder 是在同一个 seeder 目录下了,仍然会出现这个问题的原因是 我们需要清理下之前执行生成的 classmap 信息。

在控制台中执行 composer dump-autoload, 然后再执行 php artisan db:seed.

在实际产品中,seeder 一般用于产生基础数据,那么在线上环境中,我们不可以再直接执行全部的 seeder,可以选择使用 php artisan db:seed--class=UserTableSeeder 来针对独立的 seeder 文件进行操作。具体可以参考文档 laravel seeder

转自:https://www.jianshu.com/p/27a76e702d71

本帖已被设为精华帖!
本帖由系统于 5年前 自动加精
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。