我在拉拉维尔的迁徙中遇到了一些问题。我拥有的表越多,我尝试重做迁移的次数就越多,当一个外键在尚未创建的表中使用外键之前运行时,我会遇到几个外键约束错误。
简单地在自己的个人迁移中创建所有表,然后进行特定的外键迁移,是否会出现问题?是否有一种方法可以指定它总是在最后运行?每个带有外键的表应该每个表都有自己的迁移,还是一个迁移中包含的所有外键都更干净?
我希望这不会太主观。到目前为止,我在用Laravel构建模型层方面所看到的一切,似乎都非常有条不紊,有着特定的做事方法。我不确定我是否还没有找到这个过程的工作流文档。
发布于 2015-03-09 22:00:13
Laravel的迁移名包括一个时间戳。例如,默认用户迁移:
2014_10_12_000000_create_users_table.php
^^^^^^^^^^^^^^^^^
除了创建一个惟一的文件名(即使您有两次create_users_table
)之外,这个时间戳还用于将迁移放在一个order中。准确地说,开发人员创建它们的顺序。
其结果是迁移总是按照添加它们的顺序运行。
这通常有助于解决外键问题。如果通过迁移构建表迁移,那么可以直接添加外键。
但是,如果要将现有数据库(模式)转换为Laravel迁移,则必须:
我不认为单独添加外键的想法是个坏主意。然而,为了新移民,我不会再坚持下去了。这意味着如果您决定需要一个具有外键约束的新表到另一个已经存在的表,只需直接添加约束即可。因此,没有必要进行额外的迁移。
https://stackoverflow.com/questions/28951207
复制相似问题