06_Laravel数据库迁移

数据库迁移

.env文件

  • 基本环境变量配置,我们直接在.env中配置就好了,laravel默认会优先读取.env中的配置
  • 比如数据库配置,都是直接在.env中配置的;不建议在配置文件配置;

数据表的迁移与填充

  • 迁移:创建数据表的操作+删除数据表的操作
  • 填充:往数据表里填充写入测试的数据(数据的插入操作)

迁移文件的创建

  • 在迁移过程中, 操作可以分为两个部分:
    • 创建与编写迁移文件
    • 执行迁移文件

创建和编写迁移文件:

  • 迁移文件的默认位置
    database\migrations\
  • 已经存在的2个文件,如果不打算使用系统自带的认证模块的话需要删除掉,一般都要删除掉,自己写;
  • 执行操作框架内默认该目录下(database\migrations)文件;
创建迁移文件
  • 案例,需要创建成员的数据表,假设数据表的名字叫做member,迁移文件名:create_member_table, 创建member表

  • 创建的时候可以通过自动代码生成工具artisan命名来执行迁移文件的生成

    语法: php artisan make:migration 迁移文件名

  • 迁移文件不需要分目录管理,可以直接书写名称即可

    php artisan make:migration create_member_table

  • up方法,创建数据表的方法

  • down方法,删除数据表的方法

  • 编写迁移文件代码, 让其能够实现数据表的创建(up方法)与删除(down方法)

  • 写迁移文件, 只修改up和dowm方法,其他基本不变

<?php

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

class CreateMemberTable extends Migration
{
    /**
     * 创建数据表的方法
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        //member表名
        Schema::create('member', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }

    /**
     * 删除数据表的方法
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('member');
    }
}


  • 还可以在结构生成器上使用一下命令定义表的选项
    • $table->engine = ‘InnoDB’ 指定表存储引擎(Mysql)
    • $table->charset = ‘utf8’ 指定表的默认字符编码(Mysql)
    • $table->collation = ‘utf8_unicode_ci’ 指定表的默认排序格式(Mysql)
    • $table->temporary() 创建临时数据表(except SQL Server)
常用字段类型

数据库结构生成器包含构建表示可以指定的各种字段类型

见手册

执行迁移文件

执行分为up执行和down执行

up方法的执行

  • 如果在当前的项目中第一次执行迁移文件的话, 则需要先去执行:
  • php artisan migrate:install
  • 在执行上述命令之后, 在数据表中会多出一个数据表,migrations,该表的作用是用于创建记录迁移文件的记录数据表;
SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for migrations
-- ----------------------------
DROP TABLE IF EXISTS `migrations`;
CREATE TABLE `migrations` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `migration` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `batch` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  • 需要执行up方法, 则需要执行命令:(注意:需要删除系统 自带的迁移文件, 只保留自己的, 因为执行up,这个文件夹下所有迁移文件都会执行)

  • 执行迁移文件的:创建数据表

    php artisan migrate

  • 执行成功之后,migrations表里面多了一条记录migration字段值为2020_08_15_060531_create_member_table;同时创建一张新表member表;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值