php artisan migrate:未找到类架构

时间:2017-05-05 13:34:08

标签: php database laravel web-applications artisan-migrate

进行迁移时,在Windows控制台中执行命令:

php artisan migrate

当我运行该命令时,它显示以下错误:

[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'Market\Providers\Schema' not found

如果有人能帮助我,我将非常感激。

4 个答案:

答案 0 :(得分:14)

在该页面的顶部添加以下行(在provider目录下的AppServiceProvider.php)

use Illuminate\Support\Facades\Schema;

答案 1 :(得分:5)

您似乎已使用this article解决了“Laravel 5.4:指定密钥错误太长”的问题,并建议您添加以下代码

use Illuminate\Support\Facades\Schema;

public function boot()
{
    Schema::defaultStringLength(191);
}

到名为

的文件
  

AppServiceProvider.php

并且您实际上只更改了boot方法并忘记更新use部分。我是对的吗?

文章说:

  

Laravel 5.4对默认数据库字符集进行了更改,并且   它现在是utf8mb4,其中包括支持存储表情符号。这只是   只要您运行MySQL v5.7.7,就会影响新的应用程序   更高,你不需要做任何事情。

     

对于那些运行MariaDB或旧版MySQL的人,你可能会遇到这种情况   尝试运行迁移时出错:

[Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or
access violation: 1071 Specified key was too long; max key length is
767 bytes (SQL: alter table users add unique
users_email_unique(email))

[PDOException] SQLSTATE[42000]: Syntax error or access violation: 1071
Specified key was too long; max key length is 767 bytes

答案 2 :(得分:2)

您的迁移代码似乎位于命名空间中,而PHP正在寻找 Schema 类。在文件顶部添加以下内容:

use Schema;

或使用完全限定的命名空间引用架构类:

\Schema::table(...);

答案 3 :(得分:0)

添加到您的 AppServiceProvider.php 文件后

use Illuminate\Support\Facades\Schema;

public function boot()
 {
   Schema::defaultStringLength(191);
 }

别忘了跑步

php artisan migrate:fresh

我一直面临同样的问题,因为我没有进行新迁移(即删除表并创建新表)