【发布时间】:2017-10-21 08:17:01
【问题描述】:
我需要回滚一个特定的表,因为我忘了提到外键。 而且我不希望所有表中的数据丢失。
我的框架是 Laravel 5.4
提前谢谢大家
【问题讨论】:
标签: laravel laravel-5 migration rollback
我需要回滚一个特定的表,因为我忘了提到外键。 而且我不希望所有表中的数据丢失。
我的框架是 Laravel 5.4
提前谢谢大家
【问题讨论】:
标签: laravel laravel-5 migration rollback
你可以的
php artisan migrate:rollback --path=/database/migrations/your_file.php
【讨论】:
我是这样做的:
php artisan migrate;例如,如果您修改了名为“设置”的迁移,则从 DB 和迁移表中删除此表,然后重新运行 artisan 命令。
【讨论】:
迁移旨在按特定顺序应用和回滚。因此,没有“正确”的方式重新应用任意迁移。
无论如何,至少有两种选择:
“失败转发”- 创建后续迁移,创建必要的 FK 并应用它。如果您已经投入生产,这是唯一正确的方法。
如果您只是处于开发的早期阶段并且不想让迁移目录膨胀,您可以
【讨论】:
不幸的是,没有一个选项可以回滚每个表的迁移。您只能使用step 参数回滚最近的迁移或最近几次迁移。
但是如果你真的需要,有一种方法可以做到这一点。对于要回滚的迁移,您可以将迁移表中的 batch 值设置为高于最近迁移的数字。当您调用php artisan migrate:rollback 时,只有更改了batch 值的特定迁移文件才会回滚。
【讨论】:
php artisan migrate:rollback。您还可以通过运行php artisan migrate:rollback --pretend 来验证更改批处理值后会受到影响的迁移