创建了一个新数据库,现在 运行 任何 artisan 命令都会抛出有关缺少 table 的错误

Created a fresh database, now running any artisan command throws an error about a missing table

我想要一个新的开发数据库,​​这样我就可以用新数据做种子,所以我手动删除并重新创建了我的开发数据库,​​现在 运行ning 任何 artisan 命令都会抛出错误。我不断收到一条错误消息,提示我缺少 table。

In Connection.php line 647:

  SQLSTATE[42S02]: Base table or view not found: 1146 Table 'mydatabase.stores'   
  doesn't exist (SQL: select * from `stores`)                                   


In PDOConnection.php line 63:

  SQLSTATE[42S02]: Base table or view not found: 1146 Table 'mydatabase.stores'   
  doesn't exist                                                                


In PDOConnection.php line 61:

  SQLSTATE[42S02]: Base table or view not found: 1146 Table 'mydatabase.stores'   
  doesn't exist                                                                

我已经很长时间没有 运行 php artisan migrate:refresh 了,所以我不确定 table stores 在哪里被使用导致了这个错误。添加 -v 标志不会提供任何额外的输出来进一步跟踪堆栈。

我试过手动删除数据库并通过 mysql 重新创建它。我试过 composer dump-autoload 但这也无济于事。我不能 运行 php artisan migrate:install 因为调用任何 artisan 命令都会抛出同样的错误。即使调用 php artisan 也会抛出错误。我已经尝试查看我的服务提供商以查看 table 是否在任何构造函数中被引用,但我没有看到它被使用。

代码中是否有任何地方我应该检查此 table 的使用?我不确定调用 php artisan 时实例化了什么。

stores table 实际上是我的第一次迁移,所以它应该是第一个创建的东西,但由于某种原因它被称为 artisan 过程的一部分.

正如@aynber 在对我的问题的评论中提到的,问题是我在 app/Console/Commands/* 目录中的几个命令在其构造函数中实例化了一个 object,该构造函数引用了 Store 模型在其 parent 构造函数中。具体来说,是运行宁行

$this->storeId = Store::get()->last()->id;

注释掉这一行允许我 运行 我的 artisan 命令。