• 技术文章 >php框架 >Laravel

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

    藏色散人藏色散人2021-06-11 11:51:40转载108
    下面由laravel教程栏目给大家介绍Laravel 数据库迁移功能的一个坑,希望对需要的朋友有所帮助!

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

    5d3874c23d044f1817eb1b777eb7e19.png

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

    1844569bda86fd5ece67669e3873ee6.png

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

    953ceb06f327197cafa96488262c1cd.png

    • 当然类名也必须统一:

    1bbc405611a1944e0380f468c504d18.png

    • 吐槽的点在于:文档中并没有提及文件名称命名风格的强制要求 故今天记录下此小坑
    • 貌似是另一个坑或者说是框架的不足:那就是表结构 没办法持续集成,例如今天我需要对某个表加字段,但此时已经迁移过了,那就会 没办法再次运行同一个迁移文件必须要创建新的迁移文件,当然这我也理解这是为了方便回滚,但是我的需求就是为了新功能而持续加字段,并不需要回滚,所以我的 解决方案 就是每次都清空 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 );
        }
    
    }
    • 总的来说完全按照框架文档的规则来就会一帆风顺,可是做项目遇到框架默认功能无法满足需求的情况是非常正常的

    相关推荐:最新的五个Laravel视频教程

    以上就是避坑!Laravel数据库迁移功能的一个坑的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:segmentfault,如有侵犯,请联系admin@php.cn删除
    专题推荐:php laravel
    上一篇:分享关于laravel-octane的体验及压测 下一篇:没有了
    第16期线上培训班

    相关文章推荐

    • Laravel Tinker是啥?怎么用?• 基于PHP Laravel,聊聊少写PHP "烂"代码的方法!!• 方案详解:使用laravel解决库存超出问题• 分享关于laravel-octane的体验及压测• 教你玩转php中laravel框架(分享)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网