【发布时间】:2019-02-12 04:40:34
【问题描述】:
我的问题是如何在 laravel 迁移中编辑原始表?
也就是说,假设有两个表分别为Teacher 和Children。以及Student表有外键作为TeacherId。(Teacher_id指Teacher表中的TeacherId)
一些错误原因我想删除教师表或编辑教师表。然后一般错误没有原始键表不能有外键。
那么如何在不删除学生表的情况下删除教师表或编辑教师表? 有什么办法吗?
【问题讨论】:
我的问题是如何在 laravel 迁移中编辑原始表?
也就是说,假设有两个表分别为Teacher 和Children。以及Student表有外键作为TeacherId。(Teacher_id指Teacher表中的TeacherId)
一些错误原因我想删除教师表或编辑教师表。然后一般错误没有原始键表不能有外键。
那么如何在不删除学生表的情况下删除教师表或编辑教师表? 有什么办法吗?
【问题讨论】:
首先,您需要删除 Student 表上的外键(或者如果您不再有 Teacher 表,则可能完全删除 teacher_id 列),然后假设没有更多外键引用,您应该能够删除 Teacher 表学生表。
【讨论】:
您应该以某种方式对 laravel migrations 进行编码,以便您可以在 down() 方法下将其全部还原。
有时你会卡住,在某种程度上,migrate 或 migrate:rollback 命令会产生错误。
然后您应该手动修改您的数据库结构(使用 mysql 命令、工作台或任何其他 sql 工具),以使您的迁移再次工作...
最后针对您的问题...
您不能在一次提交中创建表和添加外部约束到 db,因此为了做到这一点,您需要在迁移中添加新声明 @987654325 @ like Table:... 在Schema:create... 之后并在此处添加您的外键。记得在down()方法中做相反的事情...
【讨论】: