避坑!Laravel数据库迁移功能的一个坑

下面给大家介绍Laravel 数据库迁移功能的一个坑,希望对需要的朋友有所帮助!

 

环境:Laravel 8

需求用到 Laravel 数据库迁移功能,因本人是强迫症处女座所以喜欢自己命名文件例如:

 

避坑!Laravel数据库迁移功能的一个坑插图

 

但是在执行迁移的时候报错:

 

避坑!Laravel数据库迁移功能的一个坑插图(1)

 

经过几轮尝试发现 Laravel 对迁移文件的 文件名命名格式 是有固定的解析的,所以当我文件名完全按照它的风格去写的时候就正常运行了

 

避坑!Laravel数据库迁移功能的一个坑插图(2)

 

当然类名也必须统一:

 

避坑!Laravel数据库迁移功能的一个坑插图(3)

 

吐槽的点在于:文档中并没有提及文件名称命名风格的强制要求 故今天记录下此小坑

貌似是另一个坑或者说是框架的不足:那就是表结构 没办法持续集成,例如今天我需要对某个表加字段,但此时已经迁移过了,那就会 没办法再次运行同一个迁移文件必须要创建新的迁移文件,当然这我也理解这是为了方便回滚,但是我的需求就是为了新功能而持续加字段,并不需要回滚,所以我的 解决方案 就是每次都清空 migrations 这张表,因为这张表就是控制能否反复运行同一个迁移文件的地方,代码如下:

trait Trait_Migrate
{
    /**
     * @desc 数据表:初始化
     * @return Void
     */
    static public function CI_Table_Structure() : Void
    {
        # 清空记录表以保证能持续迁移
        DB::table( 'migrations' ) -> truncate();
        # 执行迁移
        Artisan::call( 'migrate --force --path=/database/migrations/' . SELF::$CI_File );
    }
 
}

总的来说完全按照框架文档的规则来就会一帆风顺,可是做项目遇到框架默认功能无法满足需求的情况是非常正常的

 

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!
2.本站部分资源包有加密,加密统一密码为:www.51zhanma.cn
3. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
4. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
5. 如果您也有好的资源或教程,您可以投稿发布,用户购买后有销售金额的80%以上的分成收入!
6.如有侵权请联系客服邮件kefu@zhanma.cn
站码网 » 避坑!Laravel数据库迁移功能的一个坑

发表评论

  • 1808本站运营(天)
  • 1943会员数(个)
  • 5310资源数(个)
  • 1287评论数(个)
  • 0 近 30 天更新(个)
加入 VIP