laravel数据库迁移(三)

laravel号称世界上最好的框架,数据库迁移算上一个,在这里先简单入个门:

laravel很强大,它把表中的操作写成了migrations迁移文件,
然后可以直接通过迁移文件来操作表.
所以 , 数据迁移文件就是 操作表的语句文件 操作表的语句文件
为什么用迁移文件 , 而不直接敲 sql 操作表 ?
1.  便于团队统一操作表.
2.  出了问题,容易追查问题和回溯,有历史回退功能.

先创建一个库:

配置一下文件,修改.env中的参数

cmd.exe命令行输入如下命令创建一个表的迁移文件:php artisan make:migration create_table_liuyan --create=liuyan

先不忙这理解这个命令的意思,且看执行这个命令后生成的一个文件:

打开这个文件,是 php文件 :

<?php

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

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

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop(‘liuyan‘);
    }
}

ok,对比一下,再来看前面的命令,解释一下:php.exe解释器通过artisan这个工具创建migration(英译迁移)文件,其中类名CreateTableLiuyan对应create_table_liuyan(随便取的,你 开心就好,不过还是按照规则来),最后--create=liuyan是固定格式就是创建一个liuyan的表

我们要来修改这个迁移的文件

<?php

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

class CreateTableLiuyan extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create(‘liuyan‘, function (Blueprint $table) {
            $table->increments(‘id‘);
            $table->char(‘username‘,10);
            $table->char(‘password‘,50);
            $table->tinyInteger(‘sex‘);
            $table->char(‘title‘,20);
            $table->string(‘content‘,200);
            $table->tinyInteger(‘pubtime‘);
            $table->tinyInteger(‘ip‘);
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop(‘liuyan‘);
    }
}

ok,在cmd.exe窗口执行命令:php artisan migrate

ok,创建迁移表成功,用另一个cmd窗口查看一下wmsgs下是否有这张表:

ok,有了liuyan这个表了,另外三个表是migration自动生成的表

同样,如果我们想增加其中一个表列该怎么办,比如我们想增加一个表列email,输入如下命令:

php artisan make:migration add_email_to_liuyan --table=liuyan

生成一个表列迁移文件,同样也是php文件:

打开这个文件:

<?php

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

class AddEmailToLiuyan extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table(‘liuyan‘, function (Blueprint $table) {
            //
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table(‘liuyan‘, function (Blueprint $table) {
            //
        });
    }
}

将这个生成的php迁移文件改为如下:

<?php

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

class AddEmailToLiuyan extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table(‘liuyan‘, function (Blueprint $table) {
            $table->string(‘email‘);
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table(‘liuyan‘, function (Blueprint $table) {
            $table->dropCloumn(‘email‘);
        });
    }
}

在cmd.exe窗口执行命令:

ok,增加表列成功,开另一个cmd窗口看一下:

email成功添加到liuyan表中!

恭喜你,到这里数据库迁移入门 了

当然有很多命令还需要去多敲多记,加油!

程序员装逼只用命令行 ,不用命令行out了,哈哈

时间: 2024-11-08 21:57:25

laravel数据库迁移(三)的相关文章

laravel 数据库迁移报错解决

创建数据迁移 使用 Artisan 命令行的 migrate:make 命令创建一个迁移:(在命令行模式下使用) php artisan migrate:make create_users_table 所有的迁移都被存放在 app/database/migrations 文件夹下,文件以时间戳命名以方便Laravel框架按时间来界定这些文件顺序. 您可以在创建迁移的时候使用 --path 选项,用来指定迁移文件存放的路径.该路径是你安装框架根目录的相对路径: php artisan migrat

laravel 数据库迁移

问题:之前有创建迁移文件 并且执行过 如果删除迁移文件 再重新创建迁移文件时就有问题 提示找不到之前的迁移文件 /** 一开始执行的命令 php artisan make:migration create_users_table php artisan migrate 缓存保存在 vendor/composer/ autoload_static.php以及autoload_classmap.php 删除迁移文件后 **/ composer dump-autoload php artisan ma

laravel数据库迁移的migrate小解

当通过命令行:php artisan migrate:make create_authors_table --table=authors --create时,在 migration.php 中若Schema::table()而不是Schema::create时,会出现 table 不存在的指示,这时需要将 Schema::table 改为 Schema::create . 有时输入:php artisan migrate 会显示其他表已存在导致无法创建新的表,这时可以将旧的 migration.

Laravel中如何做数据库迁移

总的来说,做一次独立数据库迁移只需要三步,分别是创建迁移文件.修改迁移文件.运行迁移 1.创建数据库迁移文件php artisan make:migration create_articles_table1然后在database/migrations 目录下就会多出一个迁移文件,不过Laravel会在前面自动加上时间戳,来判断执行顺序 然后命令后面可以加上–table 或者 –create 来指定迁移文件对应的表名或者是新建一个数据表 php artisan make:migration cre

Laravel 5.2 数据库迁移和数据填充

一.数据库迁移 Laravel 的数据库迁移提供了对数据库.表.字段.索引的一系列相关操作. 1. 创建迁移 使用 Artisan 命令  php artisan make:migration create_links_table 这将在 database/migrations 目录下生成一个名为 2017_05_06_151645_create_links_table.php 的友情链接迁移类.其中,名字的前半段 "2017_05_06_151645_" 是 Laravel 增加的时

Oracle数据库迁移的几种方式

面试: 一.exp/imp逻辑备份与恢复: 二.Storage存储迁移: 将数据文件.控制文件.日志文件.spfile挂到新机器上,然后在新机器上启动数据库. 三.利用data guard迁移: 四.用rman做迁移: 我们常常需要对数据进行迁移,迁移到更性能配置更高级的主机OS上.迁移到远程的机房.迁移到不同的平台下,以下介绍ORACLE的几种数据库迁移方案: 一.exp/imp逻辑备份与恢复:  它是最常用最简单的方法,一般是基于应用的owner级做导出导入.  操作方法为: 在新库建立好o

Entity Framework Code First数据库迁移(DB Migration)

一.手动迁移 第1步.启用数据库迁移 打开程序包管理器控制台 工具->库程序包管理器->程序包管理器控制台 打开控制台后,在控制台管理窗口输入 Enable-Migrations 指令,铵下回车键,到这里已启用了数据库迁移,但还没执行,结果如下图: 第2步.运行数据库迁移 在控制台管理窗口输入 Add-Migration指令,来新增一条数据库迁移版本,输入时必须要带上一个版本名称 Add-Migration AddProductCategoryTypeName,如下图: 运行完成后会在解决方案

Laravel数据库操作

laravel数据库有三种访问方式 一.基本Facade用法 注意,首先要引入:use Illuminate\Support\Facades\DB; 不然报错 DB' not found 返回的是数组对象: $results = DB::select('select * from users where id = ?', [1]); or $sql = 'select * from friends where friend_id = 5'; $results = DB::select($sql)

使用 Code First 数据库迁移

当 Entity Framework Code First 的数据模型发生改变时,默认会引发一个System.InvalidOperationException 的异常.解决方法是使用DropCreateDatabaseAlways 或DropCreateDatabaseIfModelChanges,让Entity Framework 自动将数据库删除,然后重新创建.不过,这种方式过于残暴,应该使用更人性化的方式,让Entity Framework 帮助我们自动调整数据库架构.并且仍然保留现有数