2015-12-18 52 views
1

有時候,當我鍵入:基表或視圖:1146表 'db.ken_permissions' 不存在

php artisan 
php artisan migrate 
etc 

我得到的消息:

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

調試,我可以告訴我的問題發生在工匠文件中:

$status = $kernel->handle(
$input = new Symfony\Component\Console\Input\ArgvInput, 
new Symfony\Component\Console\Output\ConsoleOutput 
); 

我已經檢查這個答案,並沒有工作:

引導/ app.php是乾淨的,

我沒有應用程序/啓動文件夾(L5.1),

routes.php文件是乾淨的

PHP工匠-v或php工匠 - 裝備不起作用,因爲工匠在運行之前似乎失敗了。

我的唯一的事情是在app /供應商

public function boot(GateContract $gate) 
{ 
    parent::registerPolicies($gate); 
    // Dynamically register permissions with Laravel's Gate. 
    foreach ($this->getPermissions() as $permission) { 
     $gate->define($permission->name, function ($user) use ($permission) { 
      return $user->hasPermission($permission); 
     }); 
    } 
} 

一種解決方法是刪除我所有的表,然後作曲家轉儲自動加載,然後它再工作,但它不斷地回來。

這是一種追蹤遷移失敗的方法嗎? 任何想法爲什麼會發生?

Tx!

+0

取悅指觀察者的回答[here](http://stackoverflow.com/a/25315591/4632218) –

回答

2

,轉到應用\供應商\ AuthServiceProvider 如果你使用的引導方法GateContract($這個 - > getPermission()等),刪除或添加評論所有parent::registerPolicies($gate);後完成運行php artisan migrate

0

添加到觀察者的回答here

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. 

您可以將您的遷移到database/temp folder和運行遷移逐一 php artisan migrate --path=database/temp 你就會知道哪些遷移導致的問題。
注意
您也可以使用 php artisan migrate --pretend來獲得您正在嘗試執行的查詢。

+0

我有更新我的問題 –

+0

你嘗試將遷移到臨時文件夾? –

相關問題