我创建了一些迁移文件,这些文件创建了“users”和“user_info”表。运行php artisan migrate创建了表并将它们添加到数据库中的迁移表中。
然后我需要创建一个新列并向 user_info 表添加一些新行。因此,我创建了一个与用于创建“user_info”表的第一个迁移文件同名的新迁移文件。由于 Laravel 向文件添加了时间戳,我认为这不会造成任何问题。但是,在新的迁移文件中,我使用了与第一个迁移文件相同的类名,进行了我想要的更改并最终php artisan migrate再次运行。
这似乎产生了问题,因为我收到一条错误消息,指出类名已被使用。所以我将迁移文件名更改为 user_info2 并使用类名 UserInfo2 并再次尝试。这次它起作用了,并且批处理在数据库的迁移表中增加到了 2。
但是 Laravel 如何知道迁移文件实际上与第一个 user_info 迁移文件相关,因为我更改了文件名和类名?我认为它们必须具有相同的名称才能使 Laravel 控制“批处理值”。
谢谢你的帮助!
迁移的批号用于指定在运行时创建的多个迁移php artisan migrate。
因此,例如您创建两个迁移:users并且user_info您运行php artisan migrate这两个迁移将被创建并由相同的批号引用:1。
然后您创建另一个迁移,当您迁移此迁移时,编号 2 作为批号。
当您php artisan migrate:rollback根据批号执行时,Laravel 知道要回滚哪些迁移,在这种情况下,只有一个批号为 2 的迁移。
因此,批处理在这个术语中意味着尚未运行的迁移数组。这些将被相同的 ID 引用,以使回滚成为可能。
希望这能解释更多。
| 归档时间: |
|
| 查看次数: |
2620 次 |
| 最近记录: |