Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 4-执行artisan:migrate时出现致命错误_Php_Laravel_Laravel 4 - Fatal编程技术网

Php Laravel 4-执行artisan:migrate时出现致命错误

Php Laravel 4-执行artisan:migrate时出现致命错误,php,laravel,laravel-4,Php,Laravel,Laravel 4,我刚刚开始使用Laravel,我在artisan和迁移方面遇到了麻烦 我使用: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

我刚刚开始使用Laravel,我在artisan和迁移方面遇到了麻烦

我使用:
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

现在,我知道这是因为我现在有两个具有相同类名的迁移,但这不是迁移的想法,还是我误解了文档?我应该删除旧的迁移吗?

我想你搞错了。不应使用迁移两次创建表。如果出于某种原因必须(例如:在创建表之后,有一次迁移会删除该表),则可以将其命名为
重新创建俱乐部\u table
再次创建俱乐部\u table


如果您只想再次创建该表,并且在使用迁移创建该表后,没有其他迁移会改变该表,则可以使用
php artisan tinker--env=local
(仅当您不在生产环境中时才需要
env
)手动运行该表。执行
tinker
命令后,可以运行
(新建CreateClubsTable)->down()后接
(新建CreateClubsTable)->up()。这将运行特定类的迁移。

谢谢。我想,因为迁移文件名有时间戳,这让我很吃惊。我认为,当我需要更改表的模式时,我会创建一个新的迁移,而旧的迁移(及其类名)将被忽略。所以,实际上,我应该修改初始迁移文件中的模式,然后运行
migrate:refresh
。好的,现在这样做更有意义了。谢谢