删除laravel中的特定迁移

时间:2017-06-15 04:26:58

标签: laravel laravel-5 laravel-migrations

根据laravel doc,要回滚最新的迁移操作,可以使用rollback命令。此命令回滚最后一批“迁移”,其中可能包含多个迁移文件:

php artisan migrate:rollback

您可以通过为rollback命令提供step选项来回滚有限数量的迁移。例如,以下命令将回滚最后五次迁移:

php artisan migrate:rollback --step=5

migrate:reset命令将回滚所有应用程序的迁移:

php artisan migrate:reset

您可以查看here。但我需要删除特定的迁移文件。根据我的项目有30-40迁移文件。我想删除其中一个迁移文件及其模型。有没有办法做到这一点或必须手动完成。

5 个答案:

答案 0 :(得分:1)

如果您只是删除(删除)迁移文件并重新运行迁移(migrate:refresh),将重建数据库表(没有您删除的迁移文件中定义的表)

答案 1 :(得分:1)

不要。迁移是数据库的版本控制。 “删除”特定迁移就像从Git存储库的历史记录中删除随机提交一样:可能会带来可怕的后果。

相反,如果您不再需要表,则创建一个新的迁移,该迁移将把该表放在up方法中,然后在down方法中重新创建它,以便可以回滚迁移。

答案 2 :(得分:0)

删除迁移文件,从数据库中删除表,然后从数据库中的migrations表中删除该文件名。

有时候,手动处理是最好的方法。

答案 3 :(得分:0)

只需手动进行操作,即可避免出现其他问题的压力

  1. 首先删除模型(如果不需要),不再需要模型
  2. ...database/migrations文件夹中删除迁移
  3. 如果您已经迁移,即已经运行php artisan migrate,请登录到phpmyadmin或SQL(视情况而定),并在数据库中,删除由迁移创建的表
  4. 仍然在数据库内的migrations文件夹中,找到具有该迁移文件名的行并删除该行。

为我工作,希望对您有所帮助!

答案 4 :(得分:0)

您可以增加该特定迁移的批处理编号,以使其成为最新的批处理并运行rollback命令。 Rollback one specific migration in Laravel