推荐使用php artisan migrate:fresh命令,它自动删除所有表并重运全部迁移;如需填充测试数据可加--seed参数;调试时可用migrate:reset与migrate组合;严重冲突时可加--drop-views --force或手动DROP/CREATE数据库。

如果您在Laravel开发过程中需要快速清空当前数据库中的所有数据并重新执行全部迁移,以获得一个干净的初始状态,则可使用内置命令组合实现。以下是完成该操作的多种可靠方法:
一、使用migrate:fresh命令(推荐)
该命令会自动删除数据库中所有已存在的表(不包括迁移记录表),然后重新运行所有迁移文件,适用于大多数本地开发场景。
1、打开终端,进入Laravel项目根目录。
2、执行命令:php artisan migrate:fresh。
3、如需在清空后自动填充测试数据,可追加--seed参数:php artisan migrate:fresh --seed。
二、组合使用migrate:reset与migrate命令
此方式显式分离“回滚”与“重迁”两个阶段,便于观察每一步执行结果,适合调试或需自定义中间操作的场景。
1、执行回滚命令,将所有迁移回退至初始状态:php artisan migrate:reset。
2、确认所有表已被删除后,执行迁移命令重建结构:php artisan migrate。
3、若需填充种子数据,单独运行:php artisan db:seed。
三、强制删除并重建数据库(适用于本地环境)
当迁移文件存在依赖冲突或表被外部工具修改导致migrate:fresh失败时,可直接操作数据库层面进行彻底重置。
Laravel Cloud(cloud.laravel.com)。此技能用于处理所有 Laravel Cloud 请求,包括搜索和读取数据。只要任务涉及 Laravel Cloud,即使用此技能。
1、确保配置文件.env中数据库连接信息正确,且当前用户具有DROP DATABASE权限。
2、执行命令:php artisan migrate:fresh --drop-views --force(添加--drop-views可同时清除视图,--force跳过确认提示)。
3、若仍报错,可手动执行SQL:DROP DATABASE IF EXISTS your_database_name; CREATE DATABASE your_database_name;,再运行php artisan migrate。
四、使用Tinker交互式清空(仅限数据清空,不重建结构)
当仅需清除数据而保留表结构及迁移状态时,可通过Tinker快速遍历模型执行truncate操作,避免触发外键约束问题。
1、启动Tinker:php artisan tinker。
2、依次执行以下语句(按模型依赖顺序,通常先清空子表):DB::table('users')->truncate();
3、继续清空其他表,例如:DB::table('posts')->truncate();
4、退出Tinker:exit。










