我刚刚开始使用Laravel,我在工匠和迁移方面遇到了麻烦。
我使用php artisan migrate:make create_clubs_table
创建迁移。然后我就可以创建一个db模式。
但是当我使用上面的命令更改架构并创建新的迁移时,我收到以下错误:
PHP Fatal error: Cannot redeclare class CreateClubsTable in /var/www/clubb/app/database/migrations/2013_10_16_202121_create_clubs_table.php on line 43
现在,我知道这是因为我现在有两个具有相同类名的迁移,但这不是迁移的想法,还是我误解了文档?我应该删除旧的迁移吗?
答案 0 :(得分:3)
我认为你错了。您不应该使用迁移创建两次表。如果您出于某种原因必须(例如:您在创建表后有一次迁移会丢弃该表),那么您可以将其命名为recreate_clubs_table
或create_clubs_table_again
。
如果您只想重新创建并且在使用迁移创建表之后没有其他迁移可以更改该表,则可以使用php artisan tinker --env=local
手动运行它(env
仅在您需要时才需要'不在生产中)。执行tinker
命令后,您可以运行(new CreateClubsTable)->down();
,然后运行(new CreateClubsTable)->up();
。这将为特定的类运行您的迁移。