【问题标题】:Disable foreign key constraints禁用外键约束
【发布时间】:2017-12-31 12:44:21
【问题描述】:

我想禁用关系上的外键约束,因为之后我遇到了问题:

php artisan migrate:refresh

我该如何解决?

【问题讨论】:

    标签: laravel


    【解决方案1】:

    您可以在迁移文件中禁用外键约束。

    Schema::disableForeignKeyConstraints();
    

    参考:Laravel migrations nice way of disabling foreign key checks

    【讨论】:

    • 这个答案被选为最佳答案,并且还被投票两次。那么,有人可以解释一下为什么要禁用 FK 约束(这已经是一种使用迁移的糟糕方式),然后启用每个迁移类中的那些只是为了运行 refresh 命令?与仅运行 fresh 而不是 refresh 相比,这种带有大量额外工作的肮脏修复如何更好?
    • 虽然这条评论是在 2017 年发布的:我不会在迁移中使用它,我同意这是不好的做法。在本地开发和测试期间,我在 DB Seeder 中使用了它。我需要在播种期间截断一个表,这是其他表的外键的目标。我认为这绝对是有道理的。
    【解决方案2】:

    在 5.5 中你可以只使用fresh 命令:

    php artisan migrate:fresh
    

    migrate:fresh 命令将从数据库中删除所有表,然后执行迁移命令

    【讨论】:

      猜你喜欢
      • 2017-01-14
      • 2018-05-29
      • 1970-01-01
      • 2012-07-23
      • 1970-01-01
      • 2014-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多