如何在laravel迁移中编辑原始表?

问题描述 投票:0回答:2

我的问题是如何在laravel迁移中编辑原始表?

也就是说,假设有两个表有TeacherChildren。和Student表一样,外键为TeacherId。 (Teacher_id参考教师表中的TeacherId)我想删除教师表或编辑教师表的一些错误原因。然后一般错误发生,没有原始密钥表不能有外键。

那么如何在不删除Student表的情况下删除Teacher表或编辑Teacher表?有办法做到这一点?

mysql laravel migration
2个回答
1
投票

首先,您需要将外键放在Student表上(如果您不再拥有Teacher表,则可以完全删除teacher_id列),然后您应该能够删除Teacher表,假设没有更多外键引用Student表。


0
投票

您应该以某种方式编写laravel migrations,以便在down()方法下将其全部恢复。

有时你会卡住migratemigrate:rollback命令产生错误。

然后你应该手动修改你的数据库结构(使用mysql命令,工作台或任何其他sql工具),让你的迁移再次工作......

最后针对你的问题......

你不能在db的一次提交中创建表并添加外部约束,所以为了做到这一点,你需要在up()之后的迁移Table:...中添加新声明,例如Schema:create...,并在这里添加你的外键。记得在down()方法中做相反的事情......

© www.soinside.com 2019 - 2024. All rights reserved.