有关 Laravel 中迁移的此类问题:
假设我有 1 个迁移(创建表) -已经完成,即输入了命令
php artisan migrate,然后我进行其他更改(例如,更改另一个表的结构),然后我输入命令php artisan migrate- 所有迁移将被处理,包括之前已经处理的第一个,或者 Laravel 在这种情况下使用版本控制(写在文档中)并且只处理最新的(新的)?在第一个问题的上下文中,最好为同一个表的每个操作/操作进行单独迁移,还是编辑相同的迁移,增加批处理计数?
- 方法
down()。我是否理解正确,run()例如,如果您在方法中创建了 2 个表,在第 3 列添加了列并在第 4 列更改了列的数据类型,那么在方法中down()您必须手动执行相反的操作,返回方法之前的状态run()?
这里有 2 个选项:
如果您正在此时此地从头开始开发并意识到该死的,但是这里缺少一些东西,您可以这样做,
php artisan migrate:refresh即 转储并创建所有表你有一个团队或一个项目已经在进行中,你需要添加一些新的东西,然后你必须使用两个方法
up和创建一个迁移down,down它将撤消添加到的所有内容up这个问题在第一段中结束,这取决于你需要什么以及为什么需要它。
当然,最好在一次迁移中没有创建 3 个表,并且每个迁移都有自己的名称:例如
create_statuses_table,add_field_status_to_orders_table分别为 , ,如果您向其中添加up了一些down内容,则应该取消它。例如:
也可以创建一个命令
php artisan migrate --step,以便为每个迁移指定其自己的编号,然后可以使用该命令取消一个迁移回来php atisan migrate:rollback此外,在将更改部署到服务器之前,检查两个命令是否对您
up()和正常工作也不错down(),即 运行一次php artisan migrate --step并php atisan migrate:rollback确保一切顺利!