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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在laravel迁移中编辑原始表?相关的知识,希望对你有一定的参考价值。

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

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

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

答案

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

另一答案

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

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

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

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

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

以上是关于如何在laravel迁移中编辑原始表?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel:如何在控制器的几种方法中重用代码片段

如何在 laravel 中获取所有模型/迁移名称并添加单个新列

在迁移中向现有表添加新列

如何从 Laravel 项目中删除所有迁移但保留表和字段

在 laravel 中迁移特定表

获取 laravel 4 迁移执行的原始 SQL