总的来说,做一次独立数据库迁移只需要三步,分别是创建迁移文件、修改迁移文件、运行迁移

1.创建数据库迁移文件
php artisan make:migration create_articles_table
1
然后在database/migrations 目录下就会多出一个迁移文件,不过Laravel会在前面自动加上时间戳,来判断执行顺序
然后命令后面可以加上–table 或者 –create 来指定迁移文件对应的表名或者是新建一个数据表

php artisan make:migration create_articles_table --create=article
php artisan make:migration create_articles_table --table=article
1
2
2.修改迁移文件
打开新建文件我们会发现里面包含了两个方法up和down

当运行迁移时,调用up 方法
当回滚迁移时,调用down 方法

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateArticlesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('articles', function (Blueprint $table) {
$table->increments('id');
$table->timestamps();
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('articles');
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
我们主要修改up 方法,而Laravel已经为我们生成了两个字段,我们在上面添加两个字段

public function up()
{
Schema::create('articles', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->string('content');
$table->timestamps();
});
}
1
2
3
4
5
6
7
8
9
3.运行迁移
php artisan migrate
1
Laravel会自动寻找没有执行的迁移文件,如果你只想执行指定文件的话,可以在后面加上–path参数,指定文件名

然后我们可以连接数据库,看到新建了一张名为article的表,同时里面包含了5个字段。

如果要回滚迁移的话
1.回滚所有迁移

php artisan migrate:reset
1
2.回滚最后一次执行的迁移

php artisan migrate:rollback
1
3.重置数据库并重新运行所有迁移

php artisan migrate:refresh

Laravel中如何做数据库迁移的更多相关文章

  1. Laravel 实践之路: 数据库迁移与数据填充

    数据库迁移实际上就是对数据库库表的结构变化做版本控制,之前对数据库库表结构做修改的方式比较原始,比如说对某张库表新增了一个字段,都是直接在库表中执行alter table xxx add .. 的方式 ...

  2. Laravel 中使用 Redis 数据库

    一.前言 Redis 是一个开源高效的键值对存储系统,它通常用作为一个数据结构服务器来存储键值对,它可以支持字符串.散列.列表.集合.有序集合. 1. 安装 predis/predis 在 Larav ...

  3. EF 中多个数据库迁移

    Entity Framework 允许用户基于实体来创建和更新数据库,当项目中只有一个DBContext 时使用默认的参数就可以实现数据库的一些操作.当有多个DbContext 时需要制定参数才能完成 ...

  4. 2.EF中 Code-First 方式的数据库迁移

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/code-first-migrations-with-entity-framework/ 系列目 ...

  5. EF中 Code-First 方式的数据库迁移

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/code-first-migrations-with-entity-framework/ 系列目 ...

  6. ASP.NET MVC5--为数据库新增字段(涉及数据库迁移技术)

    Setting up Code First Migrations for Model Changes--为模型更改做数据库迁移. 1.打开资源管理器,在App_Data文件夹下,找到movies.md ...

  7. yii 数据库迁移

    在我们开发程序的过程中,数据库的结构也是不断调整的.我们的开发中要保证代码和数据库库的同步.因为我们的应用离不开数据库.例如: 在开发过程中,我们经常需要增加一个新的表,或者我们后期投入运营的产品,可 ...

  8. 如何使用FluentMigrator进行数据库迁移

    标题:如何使用FluentMigrator进行数据库迁移 地址:https://www.cnblogs.com/lwqlun/p/10649949.html 作者: Lamond Lu FluentM ...

  9. 【EF6学习笔记】(五)数据库迁移及部署

    原文地址:Code First Migrations and Deployment 原文主要讲两部分:开发环境下数据库迁移到其他数据库服务器:以及在Azure上如何部署应用: 迁移数据库 原文前面讲一 ...

随机推荐

  1. 论文阅读笔记(二十一)【CVPR2017】:Deep Spatial-Temporal Fusion Network for Video-Based Person Re-Identification

    Introduction (1)Motivation: 当前CNN无法提取图像序列的关系特征:RNN较为忽视视频序列前期的帧信息,也缺乏对于步态等具体信息的提取:Siamese损失和Triplet损失 ...

  2. 09、const与extern在一起跨文件引用

    const与extern都属于属性一类. 两者加一起用需要注意的一点是,在多文件编译中,加入我们共用一个全局常量.一般的定义会是这样: A.cpp文件 const int gg_int = 100; ...

  3. MySQL 8 服务器日志

    错误日志: 启动.运行.停止 mysqld(MySQL Server) 遇到的问题 通用查询日志: 建立客户端连接和从客户端接收的语句 二进制日志: 更改数据的语句(也用于复制) 中继日志: 从复制m ...

  4. php 获取当前目录和当前文件夹

    <?php /** * PHP获取路径或目录实现 */ //魔术变量,获取当前文件的绝对路径 echo "__FILE__: ========> ".__FILE__; ...

  5. win下的终端使用指南

    win下的终端使用指南 win 下的命令行工具是真的难用 . 具体的难用就不形容了 . 有了 PowerShell 也没觉得好用 . 还是喜欢Linux的终端,及Bash命令. 替换方案 比较好的替换 ...

  6. day5 dict嵌套

    #!/usr/bin/env python # -*- coding:utf-8 -*- dic = { 'name': ['alex', 'wusir', 'taibai'], 'py9': { ' ...

  7. Bad Hair Day【单调栈】

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAzMAAANgCAIAAACX06G4AAAgAElEQVR4Aey9e5RlW13fuw40HORxfI ...

  8. 深入浅出Mybatis系列六-objectFactory、plugins、mappers简介与配置

    注:本文转载自南轲梦 注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 上篇文章<深入浅出Mybatis系列(五)---TypeHandler简介及配 ...

  9. dev 控件用法2 之repositoryItemSearchLookUpEdit

    repositoryItemSearchLookUpEdit var y = userinfo.Select.ToList( a => new { userid = a.userid, code ...

  10. Python之五:函数

    函数会给一段语句块命名,我们可以在任何时候调用它,运行其中的代码 它的一班语法: def fun_name(x): 函数语句体 return a def :说明这是一个函数,我们定义了一个函数: fu ...