在基本的 Laravel 应用程序中,我在 User 类中添加了:
use SoftDeletes;
应用程序不再工作,因为 MySql 数据库的 User 表中没有“deleted_at”列。我尝试通过删除所有表并重新创建它们(或删除所有表)来添加此列:
artisan migrate:refresh --seed
artisan migrate:reset
artisan migrate:fresh
在所有情况下我都会收到错误:
Illuminate\Database\QueryException : SQLSTATE[42S22]: Column not found: 1054 Unknown column 'users.deleted_at' in 'where clause' (SQL: select exists(select * from
users
whereusers
.deleted_at
is null) asexists
)
我不明白。如果我要恢复迁移,artisan 应该只在我的 User 类上调用 down() 方法,即:
public function down()
{
Schema::dropIfExists('users');
}
如果未找到列,删除表不应失败。
附言我正在使用 docker-compose 来运行 php、mysql、artisan、composer、nginx 和 nodejs - 如果这很重要的话。
最佳答案
最初给出的答案是不正确的,因为问题也有些不正确,在聊天中讨论后,我们发现作者也在 AppServiceProvider 中进行了迁移,这阻止了通过 CLI 进行实际迁移。
您可以阅读the chat here 。从 AppServiceProvider 中删除 artisan 调用解决了这个问题
关于mysql - "Migrate reset"当代码有错误时不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58288022/