如何解决 laravel 5.3 中的未定义迁移文件错误

How to solve undefined migration files error in laravel 5.3

我在 laravel 5.3 中创建了一些迁移文件。然后我做了迁移命令。之后我在一个theese迁移文件中向我的table添加了一些列然后我删除了一个迁移文件......然后我运行 php artisan migrate:refresh 然后我得到了这个错误: 此错误来自我删除的迁移文件。看来migrate:refresh还是需要的。那么我该如何解决这个错误...?

提前致谢..:)

我最终手动创建了那个文件...:v 可能有解决这个问题的好方法...:)

我最初也遇到了这个问题,但我意识到这是我实现 CLI(命令行界面)迁移命令的方式。请阅读下文。

当您创建迁移文件然后 运行 php artisan migrate 时,新的空数据库会发生一些事情:

  1. 迁移 table 已创建,用于存储和跟踪数据库中的迁移 AND 在迁移文件目录中。

  2. 迁移文件的 "UP" 方法被触发并处理该方法中的任何逻辑。在大多数情况下,通常会使用架构 class 在数据库中存储 table。

============================================= ============================

现在,当您 运行 'php artisan migrate:refresh' 命令时,会发生一些事情。

  1. 系统根据迁移 table 中存储的内容检查数据库的 table 以查看 table(s) 是否存在。

  2. 会彻底梳理数据库,清空所有tables的所有数据。

  3. 然后它将使用存储在迁移 table 中的信息来检查每个 table 的迁移 class 的 "down" 方法是什么有可能需要处理的编码。

  4. 在大多数情况下,它通常会在属于 table 中列出的特定 class 的 "down" 方法中触发 "dropIfExists" 方法迁移 table.

    这里是你的错误发生的地方

如果迁移 table 中列出了迁移 class,系统会检查 class 是否存在于 database/migration 目录中,但它不存在?您通常会收到某种错误,以某种方式引用缺少的 table。这取决于 table 与其他一切的相互关联程度,或者 table 是否甚至在迁移 table 中列出。

解决此问题的方法是确保更新数据库的方式合理。

如果永久删除迁移文件

清除数据库和迁移table

  1. 在删除任何迁移文件之前,执行'php aritsan migrate:rollback'

  2. 删除迁移文件。

  3. 执行'php artisan migrate'或'migrate:refresh'(如果你真的想)

如果更新数据库table

  1. 更新迁移文件后,执行 'php artisan migrate' 以在新批次中添加迁移或 '或 'migrate:refresh' 以保持更新不变迁移批处理。

删除数据库并重新创建。

然后运行命令行中的这个命令

composer dump-autoload

然后运行这个命令

php artisan migrate