首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更好的做法是在Laravel中的单独迁移中添加外键(或者在任何迁移工作流中添加外键)?

更好的做法是在Laravel中的单独迁移中添加外键(或者在任何迁移工作流中添加外键)?
EN

Stack Overflow用户
提问于 2015-03-09 20:32:14
回答 1查看 216关注 0票数 0

我在拉拉维尔的迁徙中遇到了一些问题。我拥有的表越多,我尝试重做迁移的次数就越多,当一个外键在尚未创建的表中使用外键之前运行时,我会遇到几个外键约束错误。

简单地在自己的个人迁移中创建所有表,然后进行特定的外键迁移,是否会出现问题?是否有一种方法可以指定它总是在最后运行?每个带有外键的表应该每个表都有自己的迁移,还是一个迁移中包含的所有外键都更干净?

我希望这不会太主观。到目前为止,我在用Laravel构建模型层方面所看到的一切,似乎都非常有条不紊,有着特定的做事方法。我不确定我是否还没有找到这个过程的工作流文档。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-09 22:00:13

Laravel的迁移名包括一个时间戳。例如,默认用户迁移:

代码语言:javascript
运行
复制
2014_10_12_000000_create_users_table.php
^^^^^^^^^^^^^^^^^

除了创建一个惟一的文件名(即使您有两次create_users_table )之外,这个时间戳还用于将迁移放在一个order中。准确地说,开发人员创建它们的顺序。

其结果是迁移总是按照添加它们的顺序运行。

这通常有助于解决外键问题。如果通过迁移构建表迁移,那么可以直接添加外键。

但是,如果要将现有数据库(模式)转换为Laravel迁移,则必须:

  1. 要非常密切地注意创建表的顺序,以便新表所依赖的所有表都已经存在。
  2. 就像你建议的那样在后面加上外键

我不认为单独添加外键的想法是个坏主意。然而,为了新移民,我不会再坚持下去了。这意味着如果您决定需要一个具有外键约束的新表到另一个已经存在的表,只需直接添加约束即可。因此,没有必要进行额外的迁移。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28951207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档