Php 创建了一个新的数据库,现在运行任何artisan命令都会抛出一个关于缺少表的错误
我想要一个新的开发数据库,这样我就可以使用新数据进行种子培育,所以我手动删除并重新创建了我的开发数据库,现在运行任何artisan命令都会抛出一个错误。我不断地收到一个错误,说我缺少一张桌子Php 创建了一个新的数据库,现在运行任何artisan命令都会抛出一个关于缺少表的错误,php,laravel,laravel-5,laravel-artisan,artisan-migrate,Php,Laravel,Laravel 5,Laravel Artisan,Artisan Migrate,我想要一个新的开发数据库,这样我就可以使用新数据进行种子培育,所以我手动删除并重新创建了我的开发数据库,现在运行任何artisan命令都会抛出一个错误。我不断地收到一个错误,说我缺少一张桌子 In Connection.php line 647: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'mydatabase.stores' doesn't exist (SQL: select * from `store
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
,因此我不确定导致此错误的表的存储位置。添加-v
标志不会提供任何额外的输出来进一步跟踪堆栈
我已经尝试手动删除数据库并通过mysql重新创建它。我已经尝试了composer dump autoload
,但这也没有帮助。我无法运行php artisan migrate:install
,因为调用任何artisan命令都会引发相同的错误。甚至调用php artisan
也会抛出错误。我试着查看我的服务提供者,看看该表是否在任何构造函数中被引用,但我没有看到它被使用
代码中是否有任何地方我应该检查此表的使用情况?我不确定调用php artisan
时实例化了什么
存储
表实际上是我的第一次迁移,所以它应该是第一次创建,但出于某种原因,它被称为artisan过程的一部分。正如@aynber在对我的问题的评论中提到的,问题是app/Console/commands/*目录中的几个命令正在其构造函数中实例化引用其父构造函数中的存储模型的对象。具体来说,它是在运行线路
$this->storeId = Store::get()->last()->id;
注释掉这一行可以让我运行artisan命令 您可以从目录的根目录中尝试grep-R stores*
,也可以尝试grep-R Store*
,或者任何类名。您可能还需要检查任何命令的_construct()方法中的任何内容,因为它会在artisan启动时加载每个artisan命令类run@aynber这就是解决方案,检查我的答案。非常感谢!欢迎几年前,我通过艰苦的方式学会了这一点