3分钟短文:书接上回,Laravel数据库迁移的那些个小技巧

引言php

使用laravel的数据库迁移功能进行表的建立,和迁移回滚以后,咱们继续说说在设计中 表结构的更改以后的处理。以及如何为数据库填充一些伪数据做为测试。laravel



数据约束程序员

上一章说到数据库迁移回滚,能够手动控制回滚到哪一批次的迁移位置。好比咱们建立的 events 表, 若是在迁移文件内添加字段,代码以下:数据库



咱们在数据库表中间的位置添加了一个 venue 字段。而后使用迁移指令编程

 
    
    
    
     
     
              
     
 
    
php artisan migrate

就能够应用这些改变了。微信

不少时候,并非说咱们建立了表,而且指定了字段名,和字段数据类型就算完事儿了。咱们须要空与非空约束,默认值约束,主键约束,外键约束等等数据库所具备的特性, 这才是关系型数据库的魅力。app

好比声明一个布尔类型的值,并声明默认为false:测试

 
    
    
    
     
     
              
     
 
    
$table - > boolean ( 'confirmed' ) - > default ( false ) ;

好比设定一个字符串类型的字段,容许为null:spa

 
    
    
    
     
     
              
     
 
    
$table - > string ( 'comments' ) - > nullable ( ) ;

好比设定整型为无符号数:.net

 
    
    
    
     
     
              
     
 
    
$table - > tinyInteger ( 'age' ) - > unsigned ( ) ;

在给上面的 age 字段设定默认值:

 
    
    
    
     
     
              
     
 
    
$table - > tinyInteger ( 'age' ) - > unsigned ( ) - > default ( 0 ) ;

增删字段

使用迁移功能增删数据库表的字段,与以前讲的建立迁移文件相同, 首先建立一个迁移文件,使用如下脚手架指令:

 
    
    
    
     
     
              
     
 
    
php artisan make : migration add_enabled_to_events_table -- table = events

本迁移文件咱们要为表 events 添加一个 enabled 的布尔类型的字段。上述指令输出内容以下:

 
    
    
    
     
     
              
     
 
    
Created Migration : 2020 _09_28_213116_add_enabled_to_events_table

如今为该迁移文件添加 up & down 方法,指定迁移开始和回滚所要执行的动做, 咱们仅仅是添加一个字段,或者在回滚的时候,删除一个字段,代码以下图:



完成后在命令行执行迁移指令:

 
    
    
    
     
     
              
     
 
    
php artisan migrate

输出结果以下:

 
    
    
    
     
     
              
     
 
    
Migrating : 2020 _09_28_213116_add_enabled_to_events_table
Migrated
: 2020 _09_28_213116_add_enabled_to_events_table

上面咱们并无指定添加的字段在哪一个字段的后面,因此laravel所组装的SQL就默认是最后一个字段以后。你们应该不陌生SQL语句追加字段的语法:

 
    
    
    
     
     
              
     
 
    
ALTER TABLE contacts ADD last_name varchar ( 40 ) NOT NULL AFTER contact_id ;

laravel的迁移指令也容许咱们指定某个追加的字段位于某个列以后:

 
    
    
    
     
     
              
     
 
    
$table - > boolean ( 'enabled' ) - > after ( 'name' ) ;

迁移状态

查看当前数据库的迁移状态,会让咱们查看建立的迁移文件中哪些被应用了, 哪些尚未被应用,这样在数据库表比较多的状况下,能够有效地排查问题。

laravel提供了脚手架命令:

 
    
    
    
     
     
              
     
 
    
php artisan migrate : status

输出内容相似下图:



还有两个高危指令,一个是 magrate:reset 回滚全部的迁移,不一样于 migrate:rollback 仅回滚某一批次的迁移;还有一个是 migrate:refresh,若是你修改了某些迁移过的文件,这个指令会刷新全部修改的变动并应用。

这两个都要慎用!

写在最后

本文是对上一章所述laravel数据库迁移功能的补充。数据库迁移是一个比较大的动做, 特别是已经上线生产的应用数据库,若是非到更新迁移的地步不可,须要预期作好演练, 以应对可能的突发事故。

Happy coding :-)


我是@程序员小助手,专一编程知识,圈子动态的IT领域原创做者


本文分享自微信公众号 - 程序员小助手(mql45ea)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索