Laravel如何跟踪批次价值?

时间:2019-01-31 10:14:44

标签: laravel

我创建了一些迁移文件,这些文件创建了表“ users”和“ user_info”。 运行php artisan migrate创建了这些表,并将它们添加到数据库的迁移表中。

然后,我需要创建一个新列,并将一些新行添加到user_info表中。因此,我创建了一个新迁移文件,该文件的名称与用于创建“ user_info”表的第一个迁移文件的名称相同。 由于Laravel向文件添加了时间戳,所以我认为不会造成任何问题。但是,在新的迁移文件中,我使用了与第一个迁移文件相同的类名,进行了所需的更改,最后再次运行php artisan migrate

这似乎造成了问题,因为我收到一个错误消息,说该类名已被使用。 因此,我将迁移文件名更改为user_info2,并使用类名UserInfo2并再次尝试。 这次可以正常工作,并且在数据库的迁移表中批次已增加到2个。

但是,由于我同时更改了文件名和类名,因此Laravel如何知道迁移文件实际上与第一个user_info迁移文件有关?我认为它们必须具有相同的名称,才能使Laravel拥有“批处理值”的控制权。

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

迁移的批号用于指定在运行php artisan migrate时创建的多个迁移。

因此,例如,您创建两个迁移:usersuser_info,您运行php artisan migrate,这两个迁移将被创建,并由相同的批号引用:1.

然后您创建另一个迁移,在迁移时,该迁移将具有数字2作为批号。

当您基于批号执行php artisan migrate:rollback时,Laravel知道要回滚的迁移,在这种情况下,只有一个批号为2的迁移。

因此,批处理这个术语意味着一系列尚未运行的迁移。相同的ID将引用这些ID,以使回滚成为可能。

希望这能解释更多。