欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【laravel】@16 数据库迁移

程序员文章站 2022-06-15 20:25:37
...

author:咔咔

wechat:fangkangfk

所谓迁移就像是数据库的版本控制,这种机制允许团队简单轻松的编辑并共享应用的数据库表结构。迁移通常和 Laravel 的 schema 构建器结对从而可以很容易地构建应用的数据库表结构。如果你曾经频繁告知团队成员需要手动添加列到本地数据库表结构以维护本地开发环境,那么这正是数据库迁移所致力于解决的问题。

 

文档在这块写的不是很清晰,因为只说了怎么创建数据结构,只给了对列的修改方法,但是没有提怎么修改,那么下面这些流程看一看一下,更多的还是需要研究文档

 

创建一个迁移文件:php artisan make:migration create_user_table.php

【laravel】@16 数据库迁移

使用命令:php artisan migtate进行数据库迁移 

【laravel】@16 数据库迁移

这个错误的解决方案:

【laravel】@16 数据库迁移 

然后在执行就ok了

【laravel】@16 数据库迁移 

 

打开数据库:

【laravel】@16 数据库迁移 

 

 

这是第一步统一数据库结构,但是在我们正常的项目开发时项目结构会经常变更的,这个时候我们不可能直接在线上直接更改,但是我们还需要保持数据库统一,我们就可以使用laravel的数据迁移来进行操作

 

在修改列之前,确保已经将 doctrine/dbal 依赖添加到 composer.json 文件,Doctrine DBAL 库用于判断列的当前状态并创建对列进行指定调整所需的 SQL 语句:

 composer require doctrine/dbal

 

比如我们对这个users数据库要进行添加一个字段myIsAdd这个字段

我们需要先创建一个迁移文件

 【laravel】@16 数据库迁移

 

然后使用php artisan migrate命令执行

【laravel】@16 数据库迁移 

 数据库,已经添加成功

【laravel】@16 数据库迁移

 

这里对列的操作方法我简单列出来,只要知道是这样对表结构进行修改的,其他的都可以看文档解决(比如添加的列的索引,类型)

 

这是重命名字段

Schema::table('users', function (Blueprint $table) {
    $table->renameColumn('from', 'to');
});

这是删除字段

Schema::table('users', function (Blueprint $table) {
    $table->dropColumn('votes');
});

 

有特别其他需求的可以自己查文档解决,这里就不一一列出来了