Laravel 5.5 中的迁移:无法声明 class,因为该名称已被使用

Migrations in Laravel 5.5: Cannot declare class because the name is already in use

运行 在 Laravel 中进行迁移时,我遇到了一个错误:

PHP Fatal error: Cannot declare class UpdateEnquiriesTable, because the name is already in use in /var/www/project/database/migrations/2018_01_17_160335_update_enquiries_table.php on line 33

经过一些研究,我发现每个迁移文件都需要一个唯一的 class 名称(我不记得之前提到过,但可能是我)。

根据另一个问题,建议是

但后来有人推荐了deleting the conflicting migrations

哪个是首选?假设两者都有效。

您可以更改其中一个 class 名称,然后手动更新它在迁移中的条目 table 以保留您的数据库状态。如果您删除冲突的迁移,您可能 运行 在后续迁移 and/or 回滚时出现问题,因为所讨论的 class 不再存在。

只需删除此文件并重新输入迁移即可。 该 table 已在您的迁移 table 中注册,因此即使没有此文件

也会创建此 table

请尝试以下步骤:

  1. 删除所有表(清空你的数据库)
  2. 验证你是否真的没有重复迁移类
  3. 验证所有迁移文件的文件名是否都有日期和时间
  4. 运行 composer dump-autoload
  5. 运行 php artisan migrate