Laravel迁移搞砸了

时间:2014-07-27 09:41:07

标签: laravel-4 database-migration command-line-interface

我完成了Laravel迁移,我收到PHP致命错误:运行时无法重新声明Class

php artisan migrate --path="workbench/fefe/feeds2go/src/migrations"

我一直在删除迁移文件并手动删除表格并使用php artisan migrate:make重新创建但仍然相同。

如何修复迁移?

4 个答案:

答案 0 :(得分:11)

您需要检查所有迁移类文件并检查重复的类名。

答案 1 :(得分:0)

  

“无法重新声明课程”至少在课程名称出现时发生   2次。

最简单的方法是运行composer installcomposer.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)

这是一个较晚的答案,但这可能会解决您的问题。

  1. 转到app/storage/migrations
  2. 删除导致错误的迁移文件(您也可以删除存储在其中的所有内容)。
  3. 完成。