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
请尝试以下步骤:
- 删除所有表(清空你的数据库)
- 验证你是否真的没有重复迁移类
- 验证所有迁移文件的文件名是否都有日期和时间
- 运行
composer dump-autoload
- 运行
php artisan migrate
运行 在 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请尝试以下步骤:
- 删除所有表(清空你的数据库)
- 验证你是否真的没有重复迁移类
- 验证所有迁移文件的文件名是否都有日期和时间
- 运行
composer dump-autoload
- 运行
php artisan migrate