https://segmentfault.com/q/1010000010806351
我在命令行中生成了一个新的迁移脚本:
当我执行命令:php artisan migrate 时 显示迁移成功,并且在数据库中已经有了这些表:
我现在需要对这张表中的某个字段进行改名,所以我又生成了一个迁移,在里面写上:
去数据库看 更新成功,可是如果我现在再改的话,比如把 title2 再改回title 直接在这个文件中改,再执行迁移命令,出现这个提示:
好像没有走这步代码。
请问什么不能改了,难道还要再创建一个迁移脚本吗?改一次创建一个肯定不现实
解答:
是这样的,数据库有张migrate表,里面记录了你每次执行的migrate迁移文件,你把feedback表的字段title改为title2,migrate表已经记录了这个迁移文件,比如你把title2再改回title,此时是不行的。
做法:
1 执行php artisan migrate:rollback 回滚上一步操作,回滚的依据是down()方法里跟up方法相反的操作,比如up是新增一个字段,down里就是删除这个字段,此时再把up方法里title2改回title,php artisan migrate即可
2 再写个新的迁移文件
暴力操作:删除migrate表中对应的记录,执行php artisan migrate即可
评论(0)