为什么我在迁移数据库时出现错误

时间:2019-10-06 13:28:08

标签: laravel

在复制该项目之前,一切正常,但是在将该项目复制到另一台笔记本电脑后,我无法迁移数据库错误

   Illuminate\Database\QueryException  : SQLSTATE[42S02]: Base table or view not found: 1146 Table 'discussionforum.channels' doesn't exist (SQL: select * from `channels`)

  at /opt/lampp/htdocs/discussionforum/vendor/laravel/framework/src/Illuminate/Database/Connection.php:665
    661|         // If an exception occurs when attempting to run a query, we'll format the error
    662|         // message to include the bindings with SQL, which will make this exception a
    663|         // lot more helpful to the developer instead of just the database's errors.
    664|         catch (Exception $e) {
  > 665|             throw new QueryException(
    666|                 $query, $this->prepareBindings($bindings), $e
    667|             );
    668|         }
    669| 

  Exception trace:

  1   Illuminate\Foundation\Application::Illuminate\Foundation\{closure}(Object(App\Providers\AppServiceProvider))
      [internal]:0

  2   PDOException::("SQLSTATE[42S02]: Base table or view not found: 1146 Table 'discussionforum.channels' doesn't exist")
      /opt/lampp/htdocs/discussionforum/vendor/laravel/framework/src/Illuminate/Database/Connection.php:327

  Please use the argument -v to see more details.

2 个答案:

答案 0 :(得分:2)

如果在提供程序中使用了某些表或模型,则您应检查AppServiceProvider或其他在引导之前启动的提供程序,如果该表不存在,则无法使用迁移。

如果您看起来更好,那是错误的

1   Illuminate\Foundation\Application::Illuminate\Foundation\{closure}(Object(App\Providers\AppServiceProvider))
      [internal]:0 

在提供任何表之前检查提供者使用哪种模型。

如果您坚持在提供者中使用模型,则应在使用之前检查它是否存在,如下所示:

Schema::hasTable('mytable'); // off course schema must be imported.

如果您发布的是您的提供商内容,它将有所帮助。

答案 1 :(得分:0)

如果您不需要保留当前数据 您可以尝试使用

重置数据
php artisan migrate:refresh --seed

和/或删除并重新创建您的 “数据库。(sql扩展名)”文件