我完成了Laravel迁移,我收到PHP致命错误:运行时无法重新声明Class
php artisan migrate --path="workbench/fefe/feeds2go/src/migrations"
我一直在删除迁移文件并手动删除表格并使用php artisan migrate:make
重新创建但仍然相同。
如何修复迁移?
答案 0 :(得分:11)
您需要检查所有迁移类文件并检查重复的类名。
答案 1 :(得分:0)
“无法重新声明课程”至少在课程名称出现时发生 2次。
最简单的方法是运行composer install
或composer.phar dump-autoload
。它将为您生成警告信息,以确定哪个类是重复的。然后,只需删除声明两次的类。
这是我运行php artisan migrate后得到的错误
[Symfony\Component\Debug\Exception\FatalErrorException]
Cannot redeclare class CreateKidTimeslotTable
因此,我使用composer.phar dump-autoload
来识别错误。
Warning: Ambiguous class resolution, "CreateKidTimeslotTable" was found in both "laravel/database/migrations/2016_05_23_024341_create_kid_timeslot_table.php" and "laravel/database/migrations/2016_08_24_022635_create_kid_time_slot_table.php", the first will be used.
删除不再需要的重复表格。
答案 2 :(得分:0)
您需要从项目的迁移目录中手动删除该迁移文件,并且还从数据库的迁移表中删除该条目,或者可以运行php artisan migrate:refresh
,但是它将删除所有表数据,因此还可以通过php artisan migrate:refresh --step=n
答案 3 :(得分:0)
这是一个较晚的答案,但这可能会解决您的问题。
app/storage/migrations
。