我的问题是如何在laravel迁移中编辑原始表?
也就是说,假设有两个表有Teacher
和Children
。和Student表一样,外键为TeacherId。 (Teacher_id参考教师表中的TeacherId)我想删除教师表或编辑教师表的一些错误原因。然后一般错误发生,没有原始密钥表不能有外键。
那么如何在不删除Student表的情况下删除Teacher表或编辑Teacher表?有办法做到这一点?
首先,您需要将外键放在Student表上(如果您不再拥有Teacher表,则可以完全删除teacher_id列),然后您应该能够删除Teacher表,假设没有更多外键引用Student表。
您应该以某种方式编写laravel migrations
,以便在down()
方法下将其全部恢复。
有时你会卡住migrate
或migrate:rollback
命令产生错误。
然后你应该手动修改你的数据库结构(使用mysql命令,工作台或任何其他sql工具),让你的迁移再次工作......
最后针对你的问题......
你不能在db的一次提交中创建表并添加外部约束,所以为了做到这一点,你需要在up()
之后的迁移Table:...
中添加新声明,例如Schema:create...
,并在这里添加你的外键。记得在down()
方法中做相反的事情......