Laravel框架-迁移文件

它是什么:

  1. 它是保存在迁移文件目录database\migrations\中的文件,并且这些文件中的类都继承迁移类Illuminate\Database\Migrations\Migration

主要作用:

  1. 可以让开发者在代码中实现对数据表结构的增删改能力
  2. 开发者按照规范来,就可以对数据库结构起到版本控制的作用

运作原理:

  1. 首先知道每个迁移文件都会有两个方法,分别是负责破坏的up与负责还原的down。如up中添加某表,那么down中必定是删除某表
  2. 当我们执行迁移命令php artisan migrate时,程序会对比迁移表migration的记录与迁移目录中存在的文件来找到未迁移的迁移文件,接着运行迁移文件的up方法,并在迁移表migration中添迁移记录,内容为迁移文件名与迁移批次号
  3. 当我们执行迁移回退命令php artisan migrate:rollback时,程序会在迁移表migration中找到迁移批次号最大的记录(可能是多条),接着根据记录来找到对应的迁移文件并执行其中的down方法来执行回退操作,然后删除迁移表migration中的相关记录

如何使用?

  1. 创建新表的迁移命令php artisan make:migration create_xx_table。其中的 xx 表示表名
  2. 添加字段的命令php artisan make:migration add_yy_to_xx_table。其中的 xx 表示表名,yy表示字段名
  3. 添加索引的命令 php artisan make:migration add_yy_index_to_xx_table。表示给 yy 字段添加 index索引。其中,up 方法的内容为$table->index('yy');,down方法内容为$table->dropIndex('xx_yy_index');。嗐,谁又知道我在这里卡了多久呢
  4. 迁移方法的内容命令太多,必须要看文档

使用建议:

  1. 高效检查迁移文件:可以先执行迁移命令php artisan migrate并查看数据库,接着执行迁移回退命令php artisan migrate:rollback查看回退结果,最后再执行迁移命令php artisan migrate获得需要修改的内容
  2. 快速迭代开发:开发阶段,如果发现迁移文件的内容要改变,为了图方便,代码可以更加整洁,我们可以直接在迁移文件上修改,然后删除迁移文件对应的数据表以及在迁移表migration中对应的迁移记录,然后再跑一次迁移命令即可。这种操作解决不能再生产环境中进行
  3. 解决迁移失败:当执行迁移命令php artisan migrate时,有时会碰到迁移失败的情况。发生这种情况,往往是回退了漏写了down方法内容的迁移文件所致。此时,搞清楚导致失败的迁移文件的执行目的,问题就能迎刃而解了。如那迁移文件是创建数据表的,那就去数据库删除对应的表,接着去迁移表migration中删除迁移记录,然后在执行一遍迁移命令php artisan migrate即可

Laravel框架-迁移文件相关推荐

  1. php 文件上传框架,Laravel框架实现文件上传的方法分析

    本文实例讲述了Laravel框架实现文件上传的方法.分享给大家供大家参考,具体如下: 配置文件: config/filesystems.php, 新建存储空间 'uplaods' => [ 'd ...

  2. 阿里物联网套件在laravel框架中的使用--第一弹

    最近一直在研究物联网套件,也算是有点心得.然后研究归研究,终归是要回归实践的.在网上大致百度下,发现专门写阿里物联网套件的文章很少,所以就大致总结下,大致说一下物联网提供的phpSDK在laravel ...

  3. 关于laravel 框架运行数据库迁移文件的一个小坑以及常用php artisan命令

    小白我因为最近开发的一系列项目都是用的laravel框架,所以为了方便有时候就会直接复制一份代码以此作为新项目的基础.可能因为"因为夜路走多了,所以掉坑里了">>> ...

  4. laravel 框架中使用数据库迁移添加注释

    laravel 框架中数据库迁移添加注释 在使用laravel框架过程中,估计很多人都有用过数据库迁移文件.可能大家都会在建表时为字段添加注释.我在此要说明的是为表添加注释 首先我们需要引入larav ...

  5. laravel迁移文件

    laravel迁移文件的命令 Laravel鼓励敏捷.迭代的开发方式,我们没指望在第一次就获得所有正确的. 我们对于自己编写代码,可以通过迁移文件,不断的重复去测试. 对于工作,我们开发一个完整的项目 ...

  6. laravel框架数据迁移

    迁移就像数据库的版本控制,允许团队简单轻松的编辑并共享应用的数据库表结构,迁移通常和Laravel 的 schema 构建器结对从而可以很容易地构建应用的数据库表结构.如果你曾经告知小组成员需要手动添 ...

  7. tp框架中引入php文件,Laravel框架及ThinkPHP框架超级简单的公共文件引入(保留变量)...

    为什么要把两个框架放在一起来说呢?额...因为TP5.1.x与Laravel实在是太像了,本文主要讲述关于大家顶部及底部文件引入的问题. 但是如果顶部和尾部只是单纯的html代码还好说,但是里面通常有 ...

  8. 使用php框架文件上传,Laravel框架文件上传功能实现方法示例

    本文实例讲述了Laravel框架文件上传功能实现方法.分享给大家供大家参考,具体如下: 以Laravel 5.2.45 框架为主,进行文件上传功能的实现如下: 实现步骤: (1). 配置文件修改 打开 ...

  9. laravel手动误删了迁移文件,重新生成

    include(D:\UPUPW_AP5.6\htdocs\laravel\jiuxiangzu\vendor\composer/../../database/migrations/2019_03_0 ...

最新文章

  1. 计算机应用a级考试,四川省职称计算机应用能力考试A级模拟题
  2. 设计模式之命令模式、举例分析、通俗易懂
  3. Esper系列(十二)Variables and Constants
  4. 为什么本地图片都不能直接浏览器_微软工程师帮助谷歌解决Chromium浏览器中一个很长久的细节问题...
  5. 【Linux系统编程】进程间通信之命名管道
  6. Vue3 Composition API(三)——生命周期钩子、Provide函数 和 Inject函数、封装Hook案例、setup顶层编写方式
  7. 【Java】Socket多客户端Client-Server聊天程序
  8. 小米折叠手机高清渲染图曝光:双外折叠形态美如画
  9. 正则表达式的先行断言(lookahead)和后行断言(lookbehind)
  10. 一元线性回归中loss值的变化分析
  11. onchange 与 onblur
  12. IBM Rational Appscan使用之扫描结果分析
  13. 数字地球与计算机技术联系,数字地球与地球空间信息科学的关系
  14. 人体姿态估计综述 2020最全
  15. visio安装问题总结
  16. 图文并茂全面总结上百个Android Studio好用的插件(IDE通用)
  17. xp无法搜索计算机,windows xp系统笔记本电脑搜索不到无线信号的解决方法
  18. Ubuntu和win10系统(N卡)
  19. 男同胞要一定要看——酒桌上用来劝酒的话
  20. 制作一个谷歌浏览器插件,实现网页数据爬虫

热门文章

  1. 魔方(9)四轴枫叶魔方、四轴斜转魔方
  2. 谷歌中一些十分有趣的特效现象
  3. Ubuntu下U盘变成只读解决方法
  4. 内网渗透(四十六)之横向移动篇-使用系统漏洞ms17010横向移动
  5. 我的window10中没有Windows Subsystem for Linux
  6. 类中数组成员变量怎么初始化,数组名与指针的区别
  7. np.load()读取npy文件
  8. Resources的使用方式
  9. Servlet 执行原理
  10. asp毕业设计——基于asp+access的网上选题系统设计与实现(毕业论文+程序源码)——网上选题系统