2016-03-03 95 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

相关问题