【问题标题】:php artisan migrate: Class Schema not foundphp artisan migrate:找不到类架构
【发布时间】:2017-10-04 00:29:42
【问题描述】:

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

php artisan migrate

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    use Schema;
    

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

    \Schema::table(...);
    

    【讨论】:

      【解决方案2】:

      您似乎已经使用this article 修复了消息“Laravel 5.4: Specified key was too long error”的另一个问题,建议您添加以下代码

      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
      

      【讨论】:

        【解决方案3】:

        在该页面顶部添加以下行(提供程序目录下的 AppServiceProvider.php)

        use Illuminate\Support\Facades\Schema;
        

        use Schema;
        

        【讨论】:

        • 更准确地说,AppServiceProvider.php 文件位于app/Providers/AppServiceProvider.php 只是为了澄清和方便人们使用
        【解决方案4】:

        添加到您的 AppServiceProvider.php 文件后

        use Illuminate\Support\Facades\Schema;
        
        public function boot()
         {
           Schema::defaultStringLength(191);
         }
        

        别忘了跑

        php artisan migrate:fresh
        

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

        【讨论】:

          猜你喜欢
          • 2023-03-27
          • 2016-01-13
          • 1970-01-01
          • 2019-01-17
          • 1970-01-01
          • 2018-10-29
          • 2017-04-06
          • 2015-04-12
          • 2016-08-09
          相关资源
          最近更新 更多