在 Laravel 项目中,由于测试,有时候用 PHP artisan make:migration create_xxx_table 创建数据库迁移。如果把创建的迁移文件 database/migrations/2016_09_13_081736_create_xxx_table.php 文件给删除了,再次执行php artisan make:migration create_xxx_table 会报错:
[ErrorException]
include(/data/wwwroot/tj.com/vendor/composer/../../database/migrations/2016_09_13_081736_create_xxx_table.php): failed to open stream: No such file or directory
重新运行 composer update 又可以执行上面的命令了。
经过对比发现,在执行 artisan 命令后,会在 vendor/composer/autoload_classmap.php 和vendor/composer/autoload_static.php 这两个文件里加上新生成的类和文件的映射,因为有了这个映射, artisan 命令就没有再生成新的文件。
所以删除上面两个文件里的有 create_xxx_table 的行就可以解决这个问题。
或者再用 artisan 创建一个新的数据库迁移,这时会更新 composer 类和文件的映射。原来那个映射没有了,这时再创建先前那个 migration 也不会报错了。
本文介绍了在Laravel项目中遇到的数据库迁移文件被删除后,重新创建相同迁移文件时出现的错误及其解决方法。通过清理Composer映射或创建新的迁移文件来避免重复映射导致的问题。
606

被折叠的 条评论
为什么被折叠?



