Laravel: Base table or view not found: 1146 Table 'database.pages doesn't exist

江枫思渺然 提交于 2019-12-01 14:38:37

问题


I'm working on a CMS and I have a little problem with my migrations. I added a new migration file and I wanted to add that one. That didn't work so I ran this bit:

php artisan migrate:reset

After that I ran this bit:

php artisan migrate:install
php artisan migrate

And now I get this error:

{"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`)"

The error kinda tells me that it can't find the database, because that's true.

I also have a command that runs the migrate and I run that one like this:

php artisan app:install

But that shows the same error...


回答1:


Remove any lines requesting data from your model from these files to be sure artisan is not trying to load data from your non-existent table:

  • bootstrap/start.php
  • app/start/global.php
  • app/start/local.php
  • app/routes.php

Also be sure to un-register any service providers that utilize data from that table in their register or boot methods inside of app/config/app.php.


The issue is that these files not only get executed for browser (web) requests, but for all requests, including command-line artisan invocations (e.g. php artisan migrate). So if you try to use something before it is available in any of these files, you are going to have a Bad Time.




回答2:


You can use this to dictate when your app is running from the console. I believe this issue only occurs when you run a command

if( !App::runningInConsole() ){
  //allow laravel-menu to run
}

This way you will prevent data load from your non-existent table



来源:https://stackoverflow.com/questions/25315325/laravel-base-table-or-view-not-found-1146-table-database-pages-doesnt-exist

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!