Laravel学习基础之migrate的使用教程

前言

大家都知道,现在的开发测试都是讲究多人团队协作完成,每个人都有本地环境,在以前我们一般是手动的添加数据,比如在数据库查询器中使用sql语句进行数据插入。如果数据较少,那还是蛮轻松的,但是如果数据过大,那就很蛋疼了,但是这在Laravel中就很轻松,可以使用数据迁移。

本文就详细的介绍了关于Laravel中migrate使用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:

生成迁移

命令:

Migration

php artisan make:migration create_users_table

意思:创建一个迁移,其实就是创建一张名为users的表。

接着你便能在database/migrations这个目录下找到与2014_10_12_000000_create_users_table.php这个类似的文件。
和以前用php语句创建表一样,我们可以在2014_10_12_000000_create_users_table.php这个文件中写上我们要创建表的字段及约束条件。

–table和–create选项可以用于指定表名以及该迁移是否要创建一个新的数据表。这些选项只需要简单放在上述迁移命令后面并指定表名,如果你想要指定生成迁移的自定义输出路径,在执行make:migration命令时可以使用–path选项,提供的路径应该是相对于应用根目录的。

迁移结构

一个migration类包含两个方法up和down。

up中主要包含创建表的具体内容。

down中和前者相反。

Schema::create接受两个参数。第一个是你要创建表的表名;第二个是一个闭包(匿名函数),获取用于定义新表的 Blueprint 对象。

Migration

<?php use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateUsersTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('users'); } }

运行迁移

要运行应用中所有未执行的迁移,可以使用 Artisan 命令的migrate方法。

Migration

php artisan migrate

回滚迁移

想要回滚最新的一次迁移”操作“,可以使用rollback命令,注意这将会回滚最后一批运行的迁移,可能包含多个迁移文件:

Migration

php artisan migrate:rollback

migrate:reset命令将会回滚所有的应用迁移:

Migration

php artisan migrate:reset

在单个命令中回滚/迁移

migrate:refresh命令将会先回滚所有数据库迁移,然后运行migrate命令。这个命令可以有效的重建整个数据库:

Migration

php artisan migrate:refresh php artisan migrate:refresh --seed

常用迁移属性

$table->increments(‘id'); 数据库主键自增 ID $table->integer(‘votes'); 等同于数据库中的 INTEGER 类型 $table->float(‘amount'); 等同于数据库中的 FLOAT 类型 $table->char(‘name', 4); 等同于数据库中的 CHAR 类型 $table->dateTime(‘created_at'); 等同于数据库中的 DATETIME 类型 $table->enum(‘choices', [‘foo','bar']); 等同于数据库中的 ENUM 类型 $table->tinyInteger(‘numbers'); 等同于数据库中的 TINYINT 类型 $table->timestamps(); 添加 created_at 和 updated_at 列

一些列名约束条件的写法

Migration

Schema::table('users', function ($table) { $table->integer('votes')->unsigned(); //无符号类型 });

常用约束

->first() 将该列置为表中第一个列 (仅适用于 MySQL) ->after(‘column') 将该列置于另一个列之后 (仅适用于 MySQL) ->nullable() 允许该列的值为 NULL ->default($value) 指定列的默认值 ->unsigned() 设置 integer 列为 UNSIGNED

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

时间: 2024-10-01 03:21:09

Laravel学习基础之migrate的使用教程的相关文章

laravel学习教程之关联模型_php基础

Eloquent: 关联模型 简介 数据库中的表经常性的关联其它的表.比如,一个博客文章可以有很多的评论,或者一个订单会关联一个用户.Eloquent 使管理和协作这些关系变的非常的容易,并且支持多种不同类型的关联:     一对一     一对多     多对多     远程一对多     多态关联     多态多对多关联 定义关联 Eloquent 关联可以像定义方法一样在 Eloquent 模型类中进行定义.同时,它就像 Eloquent 模型自身一样也提供了强大的查询生成器.这允许关联模

laravel学习教程之存取器_php基础

前言 Laravel是一个简单优雅的PHP Web开发框架,可以将开发者从意大利面条式的代码中解放出来,通过简单.高雅.表达式语法开发出很棒的Web应用,那下面跟着小编一起来学习laravel中的存取器吧. Eloquent: 存取器简介 访问器和存储器允许你在获取或者设置 Eloquent 模型属性值时对其进行格式化操作.比如,你可能希望当一个值存储进数据库之前先对其进行 Laravel encrypter 进行加密操作,并且可以在你通过模型访问的时候自动的进行该属性的解密. 除了可自定义的的

Linux学习基础教程_unix linux

 Linux学习基础 1.什么是Linux?  准确的说,是指Linux的kernel(系统的核心程序),其内核版权属于Linus Torvalds,在GPL(GNU General Public License)版权协议下发行, 任何人都可以自由的复制(copy), 修改(change), 套装分发(distribute),销售,但是不可以在分发时加入任何限制, 而且所有原码必须是公开的,所以任何人都可以无偿取得所有执行文件和原代码.  对于Linux用户和系统管理员来说,Linux是指包含L

15个快速学习苹果Swift编程语言的入门教程

要说今年最火的编程语言是什么.那就非Swift莫属了.当然最主要还是市场炒的比较热,加上官方Swift教程<The Swift Programming Language>在北航的大三学生发起在github上进行协同翻译获得了很高的人气,短短几天时间内<Swift中文版>第一版就发布.这真是不火不行了. Swift是苹果公司在WWDC2014上发布的全新开发语言.从演示视频及随后在appstore上线的标准文档看来,语法内容混合了OC,JS,Python,语法简单,使用方便,并可与O

PHP框架Laravel学习心得体会_php实例

Laravel是一套简洁.优雅的PHP Web开发框架 (PHP Web Framework) .在世界(不含中国)PHP框架的占有率超过40%. 自从接触PHP以来一直使用Yii,感觉Yii实现功能比较简单,是一个很不错的框架.最近由于工作的原因开始研究Laravel5,不得不说我在第一步安装就被坑着了,下面就是我痛苦的学习成果.Laravel对我来说完全是新东西,如果内容有误,烦请留言或QQ我,帮我纠正错误,感激不尽!!! 1.首先安装php,最好5.6以上版本   (1)windows安装

深度学习基础之LSTM

介绍: 序列预测问题曾经被认为是数据科学行业最难解决的问题之一.涉及序列问题的包括:预测销售.发现股票市场走势.了解电影情节.了解你的演讲方式.语言翻译.在iPhone键盘上预测下一个单词等等. 随着近年来数据科学的发展,人们发现所有的这些序列预测问题都可以被长短期记忆网络(LSTM)解决. LSTM在许多方面比传统的前馈神经网络和RNN都有优势,本文的目的是解释LSTM,并使你能够将其用于解决现实生活中的问题. 注意:要阅读本文,你必须具备神经网络的基本知识以及Keras是如何工作的.你可以参

输出-c语言学习基础差,求指导

问题描述 c语言学习基础差,求指导 用结构体表示日期,输入一个日期(年.月.日),计算从输入年的1月1日到输入的日期的总天数days并输出. 解决方案 struct tm when; __time64_t now, result; int days; char buff[80]; time( &now ); _localtime64_s( &when, &now ); asctime_s( buff, sizeof(buff), &when ); printf( "

Laravel学习笔记之Middleware源码解析

说明:本文主要学习Laravel的Middleware的源码设计思想,并将学习心得分享出来,希望对别人有所帮助.Laravel学习笔记之Decorator Pattern已经聊过Laravel使用了Decorator Pattern来设计Middleware,看Laravel源码发现其巧妙用了Closure和PHP的一些数组函数来设计Middleware. 开发环境:Laravel5.3 + PHP7 + OS X 10.11 PHP内置函数array_reverse.array_reduce.

Laravel学习笔记之Container源码解析

说明:本文主要学习Laravel中Container的源码,主要学习Container的绑定和解析过程,和解析过程中的依赖解决.分享自己的研究心得,希望对别人有所帮助.实际上Container的绑定主要有三种方式:bind(),singleton(),instance(),且singleton()只是一种'shared' = true的bind(),这些已经在Laravel学习笔记之IoC Container实例化源码解析聊过,其实现方法并不复杂.当Service通过Service Provid