2016-03-03 123 views
0

我已閱讀了許多關於此主題的帖子,但還沒有找到正確的答案。當我寫的任何命令php artisan migrate返回一個結果:PHP工匠遷移出錯

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


[PDOException] 
    SQLSTATE[42S02]: Base table or view not found: 1146 Table 'adtmart1.shop_categories' doesn't exist 

我想移動完成網站的本地Web服務器上使用Laravel製成。我使用Web服務器 - opensever。有PHP版本 - 5.5,Mysql - 5.5。我寫的控制檯opensever的所有命令。在回覆的同時,請考慮我在這個領域的新功能

+1

你能發佈導致錯誤的遷移文件嗎?如果您不知道哪一個不起作用,請嘗試逐個運行遷移。 –

+0

你在「admart1」數據庫中有「shop_categories」這個表嗎? –

+0

也可能是您正在嘗試執行在控制檯命令的構造函數中調用「ShopCategory :: all()」。如果你這樣做,如果表格不存在,它會使工匠完全搞砸。 –

回答

0

首先,您需要發佈導致錯誤的遷移代碼。爲此,請嘗試逐個運行遷移。從/database/migrations文件夾中刪除所有遷移,然後將第一個(首次創建日期)添加回/database/migrations。然後運行php artisan migrate。如果遷移成功,請執行secons遷移等所有步驟。當您看到一個錯誤時,您會知道這一次遷移導致它。請在此張貼,所以我們可以提供幫助。

+0

首先刪除文件夾database/migrations中的所有文件。然後,通過openserver控制檯寫入命令:php artisan migrate:make create_users_table。因爲在日期文件夾數據庫/遷移中,第一個文件是2014_10_12_000000_create_users_table.php – Saahon

+0

您不需要使用'migrate:make'創建新的遷移,您已經擁有所有遷移。只需將它們逐個添加回'/ database/migrations'文件夾,並在每次添加遷移後運行'php artisan migrate'命令。 –

+0

仍然從第一個文件返回錯誤:「[Illuminate \ Database \ QueryException] SQLSTATE [42S02]:未找到基本表或視圖:1146'adtmart1.shop_categories'表不存在(SQL:select * f rom 'shop_categories')「」 – Saahon

1

您使用Schema::table來更改現有表,您正在尋找用於創建新表的Schema::create

改變你遷移到使用Schema::create,你就會有運行你的遷移沒有麻煩:

Schema::create('name_of_table', function(Blueprint $table) { 
     { 

      $table->increments("id",true); 
      $table->string("username")->nullable()->default(null); 
      $table->string("password")->nullable()->default(null); 
      $table->string("email")->nullable()->default(null); 
      $table->timestamps(); 
     }); 

我已經使用的僞列,當然,你會用你自己的。

有關該問題的更多信息here

+0

的代碼在哪裏寫? opencart控制檯? – Saahon

+0

你把它寫入你的數據庫/ migra文件中的laravel源碼 – James

+0

我的所有文件是:Schema :: create – Saahon