Laravel 5.2 教程 - 迁移
一、简介
迁移(Migrations)是一种数据库的版本控制。可以让团队在修改数据库结构的同时,保持彼此的进度一致。迁移通常会和 结构生成器 一起使用,可以简单的管理数据库结构。
下面以创建学生表的迁移为例,来介绍Laravel中迁移的使用。(点击查看演示数据表结构)
二、建立迁移文件
1. 使用Artisan的 make:migration 命令生成students表的迁移文件
1)生成一个最基本的迁移文件:
php artisan make:migration create_students_table
迁移文件在database/migrations目录下,打开该目录你将会看见以当前年月日开头名为create_students_table的php文件。
2)如果生成的迁移文件中想带有表名,可以加上–table参数:
php artisan make:migration create_students_table --table=students
3)如果生成的迁移文件中想带有表名及基本的表字段,可以加上–create参数:
php artisan make:migration create_students_table --create=students
4)生成模型的同时,如果想生成对应的迁移文件,只需要加上-m参数即可,迁移文件中的表名默认是模型的复数形式,如果不符合自己的需要,手动更改表名即可:
php artisan make:model Student -m
该条命令将会生成 Studnet.php 模型以及2016_07_30_052127_create_students_table.php 迁移文件。
2. 结构生成器 (Schema)
打开该文件后,有一个CreateStudentsTable的类,里面有up()和down()两个方法,up方法用于生成数据表,down方法用于删除数据表。按照数据表结构,完善后该类代码如下:
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateStudentsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('students', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->integer('age')->unsigned();
$table->integer('sex')->unsigned()->default(10);
$table->integer('created_at');
$table->integer('updated_at');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('students');
}
}
三、执行迁移
在控制台执行以下命令,即可执行迁移文件,生成或更新相应的表。
php artisan migrate
四、回滚迁移
1. 回滚上一次的迁移
php artisan migrate:rollback
2. 回滚所有迁移
php artisan migrate:reset
3. 回滚所有迁移并且再执行一次
php artisan migrate:refresh
php artisan migrate:refresh --seed
交友互动:
本文首发于马燕龙个人博客,欢迎分享,转载请标明出处。
马燕龙个人博客:http://www.mayanlong.com
马燕龙个人微博:http://weibo.com/imayanlong
马燕龙Github主页:https://github.com/yanlongma
Laravel 5.2 教程 - 迁移的更多相关文章
- Laravel 5.2 教程 - 队列
一.简介 Laravel 队列组件提供一个统一的 API 集成了许多不同的队列服务,队列允许你延后执行一个耗时的任务,例如延后至指定的时间才发送邮件,进而大幅的加快了应用程序处理请求的速度. 由于本例 ...
- 2016 版 Laravel 系列入门教程
2016 版 Laravel 系列入门教程 (1) - (5) http://www.golaravel.com/post/2016-ban-laravel-xi-lie-ru-men-jiao-ch ...
- laravel中的数据迁移和数据填充
laravel中的数据迁移和数据填充 标签(空格分隔): php 生成迁移文件两种方式: 1 新建一个表的迁移文件 php artisan make:migration create_students ...
- laravel框架手动删除迁移文件后再次创建报错
手动删除laravel框架数据表迁移文件后再次创建报错 如下图: 执行创建操作之后会在autoload_static.php及autoload_classmap.php这两个文件中添加迁移文件的目录. ...
- 2016 版 Laravel 系列入门教程(一)【最适合中国人的 Laravel 教程】
本教程示例代码见: https://github.com/johnlui/Learn-Laravel-5 在任何地方卡住,最快的办法就是去看示例代码. 本文基于 Laravel 5.2 版本,无奈 5 ...
- Laravel 系列入门教程(一)【最适合中国人的 Laravel 教程】
热烈庆祝 Laravel 5.5 LTS 发布! 实际上 Laravel 上一个 LTS 选择 5.1 是非常不明智的,因为 5.2 增加了许许多多优秀的特性.现在好了,大家都用最新的长期支持版本 5 ...
- 2016 版 Laravel 系列入门教程(五)【最适合中国人的 Laravel 教程】
本教程示例代码见: https://github.com/johnlui/Learn-Laravel-5 在任何地方卡住,最快的办法就是去看示例代码. 本文是本系列教程的完结篇,我们将一起给 Arti ...
- 2016 版 Laravel 系列入门教程(四)【最适合中国人的 Laravel 教程】
本教程示例代码见: https://github.com/johnlui/Learn-Laravel-5 在任何地方卡住,最快的办法就是去看示例代码. 本篇文章中,我将跟大家一起实现 Article ...
- 2016 版 Laravel 系列入门教程(二)【最适合中国人的 Laravel 教程】
本教程示例代码见: https://github.com/johnlui/Learn-Laravel-5 在任何地方卡住,最快的办法就是去看示例代码. 本篇文章中,我将跟宝宝们一起学习 Laravel ...
随机推荐
- Redis Sentinel中的机制与原理详解
序言 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案.实际上这意味着你可以使用Sentinel模式创建一个可以不用人为干预而应对各种故障的Redis部署. 它的主要功能有以 ...
- 解读Laravel,看PHP如何实现Facade?
刚刚开始学Laravel就会接触到路由 Route::get('/', function () { return view('welcome'); }); 后来笔者一本正经的去读过Route类的代码, ...
- 【SF】开源的.NET CORE 基础管理系统系列导航
SF是一套基于ASP.NET Core MVC+EFCore+Bootstrap开发出来的基础管理系统,源代码完全开源,可以帮助你解决C#.NET项目中重复编码的繁琐工作,让开发人员远离加班! SF ...
- CSS.05 -- 规避脱标 定位的盒子居中、CSS标签规范、溢出隐藏、内容移除(网页优化)、CSS精灵图
规避脱标 定位的盒子居中显示 Margin:0 auto : 只能让标准流的盒子居中对齐 当A是B的父系,B可以使用 margin-left:auto: 来获得相当于定位right:0:的效果 M ...
- JS和Flash(AS)相互调用
<!DOCTYPE html> <html> <head> <title>swf</title> <meta charset=&quo ...
- python应用部署--flask
首先必须吐槽一下,python应用部署简直就是有毒...太麻烦了.关键还不能成功部署. 网上很多教程都是说要用nginx和uwsgi.来来回回试了无数次都不行.于是乎,在某一个瞬间,灵感以来,发现了一 ...
- require.js 源码解读——配置默认上下文
首先,我们先来简单说一下,require.js的原理: 1.载入模块 2.通过模块名解析出模块信息,以及计算出URL 3.通过创建SCRIPT的形式把模块加载到页面中. 4.判断被加载的脚本,如 ...
- 如何用 JavaScript 下载文件
简介 我们知道,下载文件是一个非常常见的需求,但由于浏览器的安全策略的限制,我们通常只能通过一个额外的页面,访问某个文件的 url 来实现下载功能,但是这种用户体验非常不好. 幸好,HTML 5 里面 ...
- 02 nodejs命令参数(NodeJS基础入门)
声明:本文章可供有一定js基础的朋友参考nodejs入门,本文未讲解nodejs的安装,如有需要的同学可以加QQ3382260752找我,进行交流学习. 建议使用开发软件:webstorm或hbuil ...
- android开发用无线网络进行Android开发中的调试
1.手机具有root权限 2.安装adbWireless1.5.4.apk (下面有下载地址) 3.敲入命令:adb connect 192.168.1.127 后面是手机的IP地址 打开eclip ...