我的问题是如何在laravel迁移中编辑原始表?
也就是说,假设有两个表分别为Teacher
和Children
。以及学生表具有外键作为TeacherId。(Teacher_id是指Teacher表中的TeacherId)
由于某些错误原因,我想删除教师表或编辑教师表。如果没有原始密钥表不能具有外键,则会发生一般错误。
那么,如何删除教师表或编辑教师表而不删除学生表? 有办法吗?
答案 0 :(得分:1)
首先,您需要将外键放在学生表上(或者如果不再有教师表,则可能要完全删除Teacher_id列),然后应该能够假定没有更多外键被引用而删除Teacher表。学生表。
答案 1 :(得分:0)
您应该以某种方式对 laravel migrations
进行编码,以便可以通过down()
方法将其全部还原。
有时您会因为migrate
或migrate:rollback
命令产生错误而陷入困境。
然后,您应该手动修改数据库结构(使用mysql命令,工作台或任何其他sql工具),以使您的迁移再次起作用...
最后针对您的问题...
您无法在一次提交给数据库的操作中创建表和添加外部约束,因此,为此,您需要在迁移过程中添加新的声明{{ 1}}(类似于up()
之后的Table:...
,然后在此处添加外键。记住要在Schema:create...
方法中做相反的事情...