【问题标题】:Deleted a model manually, php artisan migrate gives and error手动删除了一个模型,php artisan migrate给出了错误
【发布时间】:2016-01-20 22:22:41
【问题描述】:

所以我刚开始使用 Laravel 5.1。我创建了一个名为“教师”的迁移模型。然后我手动删除了包含 Teachers 类的 Teachers.php 模型文件。现在,当我尝试回滚时,出现以下错误:

[Symfony\Component\Debug\Exception\FatalErrorException]  
  Class 'CreateTeachersTable' not found

我尝试了composer dump-autoloadphp artisan migrate:refreshphp artisan migrate:reset,但它不断给出上述错误。我只想重新开始。如何重置所有内容?

【问题讨论】:

标签: php laravel laravel-5.1 laravel-artisan artisan-migrate


【解决方案1】:

当您 refresh 迁移时,Laravel 会查看您的 migrations 表并使用其中的值来加载迁移文件以进行回滚。

由于您手动删除了迁移文件,因此它从未从您的 migrations 表中删除。对于给定的迁移文件,您必须手动删除该表中的行。

【讨论】:

    【解决方案2】:

    好的。所以我找到了解决方案。因此,如果您在没有使用php artisan migrate:rollback 的情况下不小心删除了任何模型文件或迁移文件,上述命令和任何迁移命令都会导致问题。所以你需要做的是,从数据库中手动删除所有表。我正在使用 sqlite 数据库,我删除了迁移、用户、问题、教师、密码重置所有由 migrate 命令生成的表。然后我跑了composer dumpautoload。然后我在更改文件后再次运行php artisan migrate 命令,一切恢复正常。 所以基本上删除迁移表解决了这个问题。

    【讨论】:

      【解决方案3】:

      首先,通过在您的项目文件夹中进行完整搜索来检查该类是否仍然在某处被引用,然后如果没有,请尝试运行:

      php artisan clear-compiled

      【讨论】:

      • 试过上面的命令。实际上,我在某个地方读到了删除表,所以我什至从数据库中删除了表以重新开始。我跑了上面的命令。但现在它仍然给出同样的错误。当我尝试只使用 php artisan migrate 时,它会显示“没有要迁移的内容”
      • 但是您是否在项目文件夹中搜索过该课程?也许你忘记了对某个类的引用?
      猜你喜欢
      • 2015-10-11
      • 2018-11-18
      • 1970-01-01
      • 1970-01-01
      • 2018-07-28
      • 2019-10-29
      • 2020-11-27
      • 2016-05-14
      • 2020-10-23
      相关资源
      最近更新 更多