当前位置: 首页 > 后端技术 > PHP

记住Laravel数据库迁移功能的陷阱

时间:2023-03-29 22:39:21 PHP

环境:Laravel8需要使用Laravel数据库迁移功能,因为我是一个有强迫症的处女座,所以我喜欢自己给文件命名。迁移文件的文件名格式是有固定解析的,所以当我把文件名完全按照它的风格来写的时候,就可以正常运行了。当然类名也要统一:吐槽点是:文档没有提到和文件名命名风格的强制要求,所以今天记录的这个小坑看来又是一个坑或者是框架的不足:就是表结构不能持续集成。比如今天我需要给某个表增加字段,但是这时候如果已经迁移了,那么就没办法再运行同一个迁移文件,必须新建一个迁移文件。当然我也理解这是为了方便回滚,但是我的需求是新的功能继续增加字段,不需要回滚,所以我的解决方案是每次都清空migrations表,因为该表是控制同一个迁移文件是否可以重复运行的地方。代码如下:traitTrait_Migrate{/***@descdataTable:initialization*@returnVoid*/staticpublicfunctionCI_Table_Structure():Void{#清空记录表保证连续迁移DB::table('migrations')->截断();#执行迁移Artisan::call('migrate--force--path=/database/migrations/'.SELF::$CI_File);}}一般情况下,完全按照框架文档的规则去做会一帆风顺,但是在做项目的时候,框架默认的功能无法满足需求的情况是很正常的