Laravel 8 执行php artisan migrate提示找不到migrations表问题求助
你遇到的报错核心原因是Laravel 8新增的Schema Dump机制导致的:php artisan migrate执行时会先创建migrations表,之后会自动加载database/schema/mysql-schema.sql文件初始化数据库结构,你当前的该schema文件中未包含migrations表的定义,甚至执行了整库表清空逻辑,直接把刚创建的migrations表删除,后续查询迁移记录时就会抛出表不存在的错误。
解决方案
方案1:删除Schema文件(最简便)
直接删除项目下database/schema/mysql-schema.sql文件,之后重新执行php artisan migrate即可正常运行。
方案2:修改Schema文件(需要保留现有Schema dump的场景)
打开database/schema/mysql-schema.sql,在文件末尾添加migrations表的创建语句:
CREATE TABLE `migrations` ( `id` int UNSIGNED NOT NULL AUTO_INCREMENT, `migration` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, `batch` int NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
保存后重新运行php artisan migrate即可。
方案3:单次迁移跳过Schema加载
如果只是临时需要运行迁移,不想修改现有文件,可以执行带参数的迁移命令:php artisan migrate --skip-schema
补充说明
你之前尝试的命令存在拼写错误,正确的创建迁移表命令为php artisan migrate:install,不过你的报错日志中已经显示「Migration table created successfully」,说明拼写错误不是本次问题的核心诱因。
内容的提问来源于stack exchange,提问作者gvd
相关产品推荐
相关产品推荐

