我是laravel的新手,在工作的时候我创建了一个新的迁移。运行命令php artisan migrate
后,迁移成功。然后我回到之前创建的迁移并添加了一些新字段。当我运行命令php artisan migrate
时,我收到了消息Nothing to migrate
。然后我应该运行命令php artisan migrate:refresh
来应用更改,但我不想回滚一些迁移,所以我去了那些迁移,我修改了最后一个方法,如下所示
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
// The line below has been commented to prevent rollback
// Schema::drop('table-name');
}
从那时起我运行php artisan migrate
时出现以下错误:
[Symfony\Component\Debug\Exception\FatalErrorException] Class 'Carbon' not found
我运行了composer update
,composer dump-autoload
,composer clear-cache
,php artisan migrate:refresh
,php artisan migrate:rollback
,php artisan migrate:reset
请帮我解决这个问题。
答案 0 :(得分:1)
在迁移类或脚本中,您使用过Carbon类,但忘记导入/包含。
添加
use Carbon/Carbon;
在您使用Carbon类并运行迁移的迁移脚本中。
参考链接:http://laravel.io/forum/03-12-2014-class-carbon-not-found
答案 1 :(得分:1)
我不建议在migration的down方法中注释某些行。 通常,down()方法应该始终撤消up()方法中的操作。
如果要将某些字段添加到现有表中并且不希望通过刷新来丢失某些数据,则只需创建另一个迁移并指定要修改的表。例如:
php artisan make:migration add_some_fields_to_users --table=users
您还可以考虑使用Database Seeds,以便您可以刷新迁移,然后再次使用数据为数据库播种。这在开发阶段非常强大。
对于你来说,碳问题最有可能是来自@Sanrekula的答案。