在 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 也不会报错了。