2017-12-27 97 views
0

我刪除了所有的數據庫表,但我的錯誤是:我不能遷移表再次

table.questions存在

,所以我不能遷移它們,它依賴於別的東西以及?

+0

清空數據庫,並嘗試'作曲家dumpautoload'然後嘗試再次遷移 –

回答

1

我發現了它,我在開機的問題表了中間件,並將此:

if(\Schema::hasTable('questions')) { 
     .... 
    } 
2

如果你真的從數據庫中刪除所有的表,這是不可能的。

確保你真的刪除了包括migrations表在內的所有表格。

通常,當要恢復所有遷移你應該運行:

php artisan migrate:reset 

如果您還沒有這樣做假設你正在運行Laravel 5.5可以運行:

php artisan migrate:fresh 

我會建議您閱讀整個Migrations documentation以瞭解它們如何工作以及如何創建它們。事實上,你不應該手動刪除表,只需運行:

php artisan migrate:rollback 

回滾遷移之前運行,或象我已經說過,您可以運行一個一個前面提到的命令來回滾或回滾並再次運行您的遷移。

+0

我再次 –

+1

@amini有錯誤.swallow您確定您的應用程序正在使用您認爲正在使用的數據庫嗎?運行'php artisan migrate:status'來查看運行的是什麼樣的遷移,看看'.env'來查看數據庫名稱並運行'php artisan config:clear'來確保沒有舊的數據庫連接被緩存。 –

+0

是的,我相信 –

2

你得到這個錯誤,因爲你已經在DB中有這個表。您需要在每個遷移的down()方法中刪除一個表,並使用php artisan migrate:rollback命令刪除最後一批執行的遷移。

在5.5中,如果不刪除down()方法中的表格,也可以使用php artisan migrate:fresh

https://laravel.com/docs/5.5/migrations#rolling-back-migrations

或者你也可以手動重新創建一個數據庫,並運行php artisan migrate命令。

+0

不,我沒有它在數據庫中,我也刪除了我的數據庫並創建它再次 –

2

您可以運行:

php artisan migrate:refresh 

回滾所有表(包括遷移表),並再次重新一切。

+0

我再次有這個錯誤 –

+0

@ amini.swallow做了這個答案幫助你嗎? –

+0

不,我在這裏回答這是因爲AuthServiceProvider.php。我寫了一箇中間件。請在這裏檢查我的答案。 –