我正在使用CMS,我的迁移有点问题。我添加了一个新的迁移文件,我想添加一个。这没用,所以我跑了一下:
php artisan migrate:reset
之后我跑了这一步:
php artisan migrate:install
php artisan migrate
现在我收到了这个错误:
{"error":{"type":"Illuminate\\Database\\QueryException","message":"SQLSTATE[42S02]: Base table or
view not found:1146 Table 'cms.pages' doesn't exist (SQL: select * from `pages`)"
错误有点告诉我它无法找到数据库,因为那是真的。
我还有一个运行迁移的命令,我运行这样的命令:
php artisan app:install
但是这显示了同样的错误...
答案 0 :(得分:12)
从这些文件中删除从模型中请求数据的所有行,以确保工匠不会尝试从不存在的表中加载数据:
bootstrap/start.php
app/start/global.php
app/start/local.php
app/routes.php
还要确保取消注册在app/config/app.php
内的寄存器或引导方法中使用该表中数据的任何服务提供商。
问题是这些文件不仅针对浏览器(Web)请求执行,而且针对所有请求执行,包括命令行工匠调用(例如php artisan migrate
)。因此,如果您尝试在任何这些文件中使用之前使用某些内容,那么您将会遇到错误的时间。
答案 1 :(得分:2)
您可以使用它来指示您的应用从控制台运行的时间。 我相信只有在运行命令时才会出现此问题
if( !App::runningInConsole() ){
//allow laravel-menu to run
}
这样可以防止数据从不存在的表中加载