Laravel 4 迁移回滚问题

2022-08-30 08:39:39

我可以很容易地运行工匠迁移等,但是当我尝试回滚它时,使用迁移:回滚,我不断收到此错误,

c:\xampp\htdocs\laravel>php artisan migrate:rollback
{"error":{"type":"Symfony\\Component\\Debug\\Exception\\FatalErrorException","message":"Class 'CreateCodesnippetsTable' not found","file":"C:\\xampp\\htdocs\\laravel\\vendor\\laravel\\framework\\src\\Illum
inate\\Database\\Migrations\\Migrator.php","line":301}}

这是一个错误吗?或者我应该如何调试?


答案 1

也许你已经解决了这个问题。但我注意到,由于某种原因,回滚通常需要您先运行。即使您的迁移有效。composer dumpautoload


答案 2

在刚刚与这个问题斗争了几天之后,我想我现在可以为解决这个问题提供明确的答案。是的,我知道大电话,但请忍受我。

如果遇到此问题,第一个呼叫端口是运行 。这应该会导致文件的更新版本。composer dump-autoloadvendor/composer/autoload_classmap.php

如果未更新,则可能存在权限问题,在这种情况下,您可以尝试 。autoload_classmap.phpsudo composer dump-autoload

但是,如果确实进行了更新,请检查它是否包含迁移类的条目(在本例中)。如果没有此类的条目,则应检查文件并确保该文件夹包含在自动加载部分中,例如:autoload_classmap.phpCreateCodesnippetsTablecomposer.jsonapp/database/migrations

"autoload": {
    "classmap": [
        "app/controllers",
        "app/models",
        "app/database/migrations"
    ]
},

这最后一点对我来说是搞砸了事情的原因。在一次被误导的优化尝试中,我从文件中尽可能多地提取出来,天真地认为这只会影响Web请求。事实证明,这也影响了Artisan,所以把这条线放回去并运行对我来说解决了这个问题。composer.jsoncomposer dump-autoload

最后,如果所有这些都失败了,那么也许其中一个支持库中存在导致问题的错误,在这种情况下,您可以尝试使用或其某些变体进行更新。但是,我怀疑这很少会是问题的真正原因。composer update


推荐