“重置错误,当代码错误时不起作用

问题描述 投票:0回答:1

在基本的Laravel应用程序中,我在User类中添加了:

使用SoftDeletes;

应用程序不再起作用,因为MySql数据库的User表中没有'deleted_at'列。我试图通过删除所有表并重新创建它们(或通过删除所有表)来添加此列:

工匠移民:刷新-种子

工匠迁移:重置

在两种情况下我都会收到错误:

Illuminate \ Database \ QueryException:SQLSTATE [42S22]:找不到列:1054'where子句'中的未知列'users.deleted_at'(SQL:select exist(select * from users其中email = user @ gmail .com和usersdeleted_at为null),如exists

我不明白。如果我要恢复迁移,则工匠只应在我的User类上调用down()方法:

public function down()
{
    Schema::dropIfExists('users');
}

如果未找到列,则拖放表应该不会失败。

P.S。我正在使用docker-compose运行php,mysql,artisan,composer,nginx和nodejs-如果可能的话。

mysql laravel database-migration laravel-5.8
1个回答
0
投票

使用php artisan refresh将回滚所有表,然后将其全部向上。如果您确定要擦除当前使用的所有内容。

php artisan migrate:fresh --seed

这将强制删除所有内容并重新开始

请参阅the docs了解更多信息

[migrate:fresh命令将从数据库中删除所有表,然后执行migrate命令:

© www.soinside.com 2019 - 2024. All rights reserved.