laravel-PHP Artisan迁移失败

汤姆·莫里森

我不小心删除了数据库迁移表,并且必须回滚所做的更改。最终失败。加载项目视图时,出现以下错误。

Connection.php 669行中的QueryException:SQLSTATE [42S02]:未找到基表或视图:1146表'ushop.items'不存在(SQL:select * from items

in Connection.php line 669
at Connection->runQueryCallback('select * from `items`', array(), object(Closure)) in Connection.php line 629
at Connection->run('select * from `items`', array(), object(Closure)) in Connection.php line 342
at Connection->select('select * from `items`', array(), true) in Builder.php line 1461
at Builder->runSelect() in Builder.php line 1447
at Builder->get(array('*')) in Builder.php line 569
at Builder->getModels(array('*')) in Builder.php line 303
at Builder->get(array('*')) in Model.php line 646
at Model::all() in ItemController.php line 15
at ItemController->index()
at call_user_func_array(array(object(ItemController), 'index'), array()) in Controller.php line 80
at Controller->callAction('index', array()) in ControllerDispatcher.php line 146
at ControllerDispatcher->call(object(ItemController), object(Route), 'index') in ControllerDispatcher.php line 94
at ControllerDispatcher->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
at Pipeline->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in ControllerDispatcher.php line 96
at ControllerDispatcher->callWithinStack(object(ItemController), object(Route), object(Request), 'index') in ControllerDispatcher.php line 54
at ControllerDispatcher->dispatch(object(Route), object(Request), 'App\Http\Controllers\ItemController', 'index') in Route.php line 174
at Route->runController(object(Request)) in Route.php line 140
at Route->run(object(Request)) in Router.php line 724
at Router->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
at Pipeline->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Router.php line 726
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 699
at Router->dispatchToRoute(object(Request)) in Router.php line 675
at Router->dispatch(object(Request)) in Kernel.php line 246
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 44
at CheckForMaintenanceMode->handle(object(Request), object(Closure))
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Kernel.php line 132
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 99
at Kernel->handle(object(Request)) in index.php line 54
at require_once('/home/thomas/ushop/public/index.php') in server.php line 21

我做了一些研究,发现了这一点,在运行作曲家dump-autoload时得到了以下信息

PHP致命错误:在第336行的/home/thomas/ushop/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php中找不到类'Item'

[Symfony \ Component \ Debug \ Exception \ FatalErrorException]
找不到类'Item'

我希望这个问题之前没有得到解答,但是到目前为止我还没有很多运气。

阿尔法

这是因为您已手动删除了数据库中的表,所以现在该表不可用,但是当您尝试回滚时,框架会尝试撤消迁移,因此它将在您手动删除的数据库中查找该表因此会发生错误。为什么要查找该表,因为在迁移文件的down方法中您具有以下内容:

Schema::drop('table_name');

因此,它尝试从数据库中删除已删除的表,但找不到它,并且在迁移表中为已迁移的每个表都有一条记录,因此您可以手动删除所有表并从头开始迁移或禁用在down当你回滚(通过评论drop语句)方法暂时这样下来方法什么也不做,移民文件。如果您禁用该down方法,请暂时重新启用该down方法。这是解决问题的一种简单方法。

或者,可以down通过检查是否table存在drop在每个迁移文件中或在已删除表的迁移文件中的方法中添加一个检查,例如:

public function down()
{
    if (Schema::hasTable('table_name')) {
        Schema::drop('table_name');
    }
}

希望你有这个主意。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 php artisan make:auth 之后,Laravel 在 php artisan 迁移上失败

来自分类Dev

Laravel Artisan迁移错误:“ zsh:非法硬件指令php artisan迁移”

来自分类Dev

php artisan在Laravel 4中迁移错误PDOException

来自分类Dev

Laravel 5.1.11用PHP Artisan迁移对我不起作用

来自分类Dev

php Laravel 5.3中的artisan迁移错误

来自分类Dev

Laravel Artisan迁移[BadMethodCallException]

来自分类Dev

Laravel Artisan迁移[BadMethodCallException]

来自分类Dev

不能 php artisan 迁移

来自分类Dev

在Mac php artisan上设置Laravel迁移错误:无此类文件或目录

来自分类Dev

我如何在Laravel中使用“ php artisan migration”迁移数据库

来自分类Dev

如何手动命名Laravel迁移,以便“ php artisan migration”可以运行它?

来自分类Dev

Laravel PHP Artisan迁移命令-没有错误,也没有控制台输出?

来自分类Dev

运行php artisan时将表从laravel应用迁移到localhost数据库的问题

来自分类Dev

使用Laravel迁移重命名现有列,然后成功运行php artisan migrate:refresh成功

来自分类Dev

我正在使用Laravel 5,但无法使用php artisan migration迁移数据库

来自分类Dev

迁移失败Laravel

来自分类Dev

Laravel迁移重置失败

来自分类Dev

Laravel“ artisan make:observer”失败

来自分类Dev

Laravel Artisan迁移未创建表

来自分类Dev

PHP Laravel 迁移 SQL 问题

来自分类Dev

PHP 项目中的 Laravel 迁移

来自分类Dev

Laravel迁移失败,除了迁移表

来自分类Dev

PHP artisan迁移未创建新表

来自分类Dev

我的php artisan迁移发生了什么

来自分类Dev

Laravel迁移使多个主键失败

来自分类Dev

迁移laravel 4.2中的失败*

来自分类Dev

Laravel php artisan用于模仿HTTPS

来自分类Dev

在laravel中还原“ php artisan serve”命令

来自分类Dev

Laravel:PHP Artisan Tinker'SQLSTATE [23000]'错误

Related 相关文章

  1. 1

    在 php artisan make:auth 之后,Laravel 在 php artisan 迁移上失败

  2. 2

    Laravel Artisan迁移错误:“ zsh:非法硬件指令php artisan迁移”

  3. 3

    php artisan在Laravel 4中迁移错误PDOException

  4. 4

    Laravel 5.1.11用PHP Artisan迁移对我不起作用

  5. 5

    php Laravel 5.3中的artisan迁移错误

  6. 6

    Laravel Artisan迁移[BadMethodCallException]

  7. 7

    Laravel Artisan迁移[BadMethodCallException]

  8. 8

    不能 php artisan 迁移

  9. 9

    在Mac php artisan上设置Laravel迁移错误:无此类文件或目录

  10. 10

    我如何在Laravel中使用“ php artisan migration”迁移数据库

  11. 11

    如何手动命名Laravel迁移,以便“ php artisan migration”可以运行它?

  12. 12

    Laravel PHP Artisan迁移命令-没有错误,也没有控制台输出?

  13. 13

    运行php artisan时将表从laravel应用迁移到localhost数据库的问题

  14. 14

    使用Laravel迁移重命名现有列,然后成功运行php artisan migrate:refresh成功

  15. 15

    我正在使用Laravel 5,但无法使用php artisan migration迁移数据库

  16. 16

    迁移失败Laravel

  17. 17

    Laravel迁移重置失败

  18. 18

    Laravel“ artisan make:observer”失败

  19. 19

    Laravel Artisan迁移未创建表

  20. 20

    PHP Laravel 迁移 SQL 问题

  21. 21

    PHP 项目中的 Laravel 迁移

  22. 22

    Laravel迁移失败,除了迁移表

  23. 23

    PHP artisan迁移未创建新表

  24. 24

    我的php artisan迁移发生了什么

  25. 25

    Laravel迁移使多个主键失败

  26. 26

    迁移laravel 4.2中的失败*

  27. 27

    Laravel php artisan用于模仿HTTPS

  28. 28

    在laravel中还原“ php artisan serve”命令

  29. 29

    Laravel:PHP Artisan Tinker'SQLSTATE [23000]'错误

热门标签

归档