Laravel 学习之数据库迁移

1.数据库迁移详解

迁移就像是数据库的版本控制,允许团队简单轻松的编辑并共享应用的数据库表结构,迁移通常和 Laravel 的数据库结构生成器配合使用,让你轻松地构建数据库结构。如果你曾经试过让同事手动在数据库结构中添加字段,那么数据库迁移可以让你不再需要做这样的事情(来自于手册文档数据库迁移简介)

2.操作

2.1运行迁移

1)通用是使用artisan命令来进行迁移操作,laravel默认有两个迁移文件一个users一个passwordResets表。
// 根据迁移文件在数据库内生成数据表
命令行:php artisan migrate

执行后你就会发现你连接的数据库中多了3个表,一个是users表(这里我用的是customers,直接复制的 Users迁移文件),一个password_resets表,还有一个migrates表。这里友情提示,不建议直接用user 当用户表,user的定义太大了,我们一般用客户,当然按照你们实际情况决定,偏要用user当用户表也 不反对。

2)表结构

customers 表结构

migrations 表结构

password_resets 表结构

3) 迁移文件所在目录,里边具体内容自己看吧。

2.2 生成迁移
1) 命令行操作:php artisan make:migration create_customerInformation_table

2) 效果:生成一个客户信息表 customer_information 迁移文件,这时候你会发现在 database/migrations 文件下生成了一个 2019_06_06_130424_create_customer_information_table.php 文件。

3)方法:你看到了一个up方法和一个down方法,up 方法用于添加新的数据表, 字段或者索引到数据库, 而 down 方法就是 up 方法的反操作,和 up 里的操作相反。一个创建一个删除。

4)字段添加:客户信息表,存储客户信息的,就相当于网页的个人中心,这里简单举例就简单几个字段属性,主键id,customer_id,性别 sex,昵称 nick_name,地址 address,具体请看图片里的注释

5)写完后,运行迁移,命令行:php artisan migrate,这时候数据库里就有了新的客户信息表,看图片哦。

客户信息表结构

2.3回滚迁移

1)想要回滚最新的一次迁移”操作“,可以使用 rollback 命令,这将会回滚最后一批运行的迁移,可能包含多个迁移文件:

命令行操作:php artisan migrate:rollback

2)你也可以通过 rollback 命令上提供的 step 选项来回滚指定数目的迁移,例如,下面的命令将会回滚最后3条迁移:

命令行操作:php artisan migrate:rollback --step=3

3)migrate:reset 命令将会回滚所有的应用迁移:

命令行操作:php artisan migrate:reset

4)在单个命令中回滚 & 迁移,migrate:refresh 命令将会先回滚所有数据库迁移,然后运行 migrate 命令。这个命令可以有效的重建整个数据库:

命令行操作:php artisan migrate:refresh

// 重建数据库并填充数据

命令行操作:php artisan migrate:refresh --seed

5)你也可以回滚或重建指定数量的迁移 —— 通过 refresh 命令提供的 step 选项。

// 回滚3条数据迁移

命令行操作:php artisan migrate:refresh --step=3

6)删除所有表 & 迁移migrate:fresh 命令将会先从数据库中删除所有表然后执行 migrate 命令

命令行操作:php artisan migrate:fresh

剩下的修改字段之类的就之后写吧。

本作品采用《CC 协议》,转载必须注明作者和本文链接
周洪亮
阿周日记
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 1

请问comment('注释') 这样写执行迁移的时候不会报错吗

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!