Laravel框架-迁移文件
Laravel框架-迁移文件
它是什么:
- 它是保存在迁移文件目录
database\migrations\
中的文件,并且这些文件中的类都继承迁移类Illuminate\Database\Migrations\Migration
主要作用:
- 可以让开发者在代码中实现对数据表结构的增删改能力
- 开发者按照规范来,就可以对数据库结构起到版本控制的作用
运作原理:
- 首先知道每个迁移文件都会有两个方法,分别是负责破坏的
up
与负责还原的down
。如up
中添加某表,那么down
中必定是删除某表 - 当我们执行迁移命令
php artisan migrate
时,程序会对比迁移表migration
的记录与迁移目录中存在的文件来找到未迁移的迁移文件,接着运行迁移文件的up
方法,并在迁移表migration
中添迁移记录,内容为迁移文件名与迁移批次号 - 当我们执行迁移回退命令
php artisan migrate:rollback
时,程序会在迁移表migration
中找到迁移批次号最大的记录(可能是多条),接着根据记录来找到对应的迁移文件并执行其中的down
方法来执行回退操作,然后删除迁移表migration
中的相关记录
如何使用?
- 创建新表的迁移命令
php artisan make:migration create_xx_table
。其中的 xx 表示表名 - 添加字段的命令
php artisan make:migration add_yy_to_xx_table
。其中的 xx 表示表名,yy表示字段名 - 添加索引的命令
php artisan make:migration add_yy_index_to_xx_table
。表示给 yy 字段添加 index索引。其中,up 方法的内容为$table->index('yy');
,down方法内容为$table->dropIndex('xx_yy_index');
。嗐,谁又知道我在这里卡了多久呢 - 迁移方法的内容命令太多,必须要看文档
使用建议:
- 高效检查迁移文件:可以先执行迁移命令
php artisan migrate
并查看数据库,接着执行迁移回退命令php artisan migrate:rollback
查看回退结果,最后再执行迁移命令php artisan migrate
获得需要修改的内容 - 快速迭代开发:开发阶段,如果发现迁移文件的内容要改变,为了图方便,代码可以更加整洁,我们可以直接在迁移文件上修改,然后删除迁移文件对应的数据表以及在迁移表
migration
中对应的迁移记录,然后再跑一次迁移命令即可。这种操作解决不能再生产环境中进行 - 解决迁移失败:当执行迁移命令
php artisan migrate
时,有时会碰到迁移失败的情况。发生这种情况,往往是回退了漏写了down
方法内容的迁移文件所致。此时,搞清楚导致失败的迁移文件的执行目的,问题就能迎刃而解了。如那迁移文件是创建数据表的,那就去数据库删除对应的表,接着去迁移表migration
中删除迁移记录,然后在执行一遍迁移命令php artisan migrate
即可
Laravel框架-迁移文件相关推荐
- php 文件上传框架,Laravel框架实现文件上传的方法分析
本文实例讲述了Laravel框架实现文件上传的方法.分享给大家供大家参考,具体如下: 配置文件: config/filesystems.php, 新建存储空间 'uplaods' => [ 'd ...
- 阿里物联网套件在laravel框架中的使用--第一弹
最近一直在研究物联网套件,也算是有点心得.然后研究归研究,终归是要回归实践的.在网上大致百度下,发现专门写阿里物联网套件的文章很少,所以就大致总结下,大致说一下物联网提供的phpSDK在laravel ...
- 关于laravel 框架运行数据库迁移文件的一个小坑以及常用php artisan命令
小白我因为最近开发的一系列项目都是用的laravel框架,所以为了方便有时候就会直接复制一份代码以此作为新项目的基础.可能因为"因为夜路走多了,所以掉坑里了">>> ...
- laravel 框架中使用数据库迁移添加注释
laravel 框架中数据库迁移添加注释 在使用laravel框架过程中,估计很多人都有用过数据库迁移文件.可能大家都会在建表时为字段添加注释.我在此要说明的是为表添加注释 首先我们需要引入larav ...
- laravel迁移文件
laravel迁移文件的命令 Laravel鼓励敏捷.迭代的开发方式,我们没指望在第一次就获得所有正确的. 我们对于自己编写代码,可以通过迁移文件,不断的重复去测试. 对于工作,我们开发一个完整的项目 ...
- laravel框架数据迁移
迁移就像数据库的版本控制,允许团队简单轻松的编辑并共享应用的数据库表结构,迁移通常和Laravel 的 schema 构建器结对从而可以很容易地构建应用的数据库表结构.如果你曾经告知小组成员需要手动添 ...
- tp框架中引入php文件,Laravel框架及ThinkPHP框架超级简单的公共文件引入(保留变量)...
为什么要把两个框架放在一起来说呢?额...因为TP5.1.x与Laravel实在是太像了,本文主要讲述关于大家顶部及底部文件引入的问题. 但是如果顶部和尾部只是单纯的html代码还好说,但是里面通常有 ...
- 使用php框架文件上传,Laravel框架文件上传功能实现方法示例
本文实例讲述了Laravel框架文件上传功能实现方法.分享给大家供大家参考,具体如下: 以Laravel 5.2.45 框架为主,进行文件上传功能的实现如下: 实现步骤: (1). 配置文件修改 打开 ...
- laravel手动误删了迁移文件,重新生成
include(D:\UPUPW_AP5.6\htdocs\laravel\jiuxiangzu\vendor\composer/../../database/migrations/2019_03_0 ...
最新文章
- 计算机应用a级考试,四川省职称计算机应用能力考试A级模拟题
- 设计模式之命令模式、举例分析、通俗易懂
- Esper系列(十二)Variables and Constants
- 为什么本地图片都不能直接浏览器_微软工程师帮助谷歌解决Chromium浏览器中一个很长久的细节问题...
- 【Linux系统编程】进程间通信之命名管道
- Vue3 Composition API(三)——生命周期钩子、Provide函数 和 Inject函数、封装Hook案例、setup顶层编写方式
- 【Java】Socket多客户端Client-Server聊天程序
- 小米折叠手机高清渲染图曝光:双外折叠形态美如画
- 正则表达式的先行断言(lookahead)和后行断言(lookbehind)
- 一元线性回归中loss值的变化分析
- onchange 与 onblur
- IBM Rational Appscan使用之扫描结果分析
- 数字地球与计算机技术联系,数字地球与地球空间信息科学的关系
- 人体姿态估计综述 2020最全
- visio安装问题总结
- 图文并茂全面总结上百个Android Studio好用的插件(IDE通用)
- xp无法搜索计算机,windows xp系统笔记本电脑搜索不到无线信号的解决方法
- Ubuntu和win10系统(N卡)
- 男同胞要一定要看——酒桌上用来劝酒的话
- 制作一个谷歌浏览器插件,实现网页数据爬虫