文档章节

Laravel框架之Migration使用教程技术

hosser
 hosser
发布于 2016/10/20 00:25
字数 917
阅读 63
收藏 0

Laravel框架之Migration使用教程技术

maybe yes 发表于2015-10-29 10:53

原文链接 : http://blog.lmlphp.com/archives/150/Migration_use_tutorial_of_web_artisan_framework_laravel  来自 : LMLPHP后院

提到 Laravel, 像我前面说的,商业气息太浓,其本身用了 Composer 的加载和 Symfony 框架的库和大量的第三方的库,这样综合性太强的软件系统性能是不会很高也不会很稳定的。说起 Artisan,也只能如我前面说的: 它实现了对象的 ArrayAccess 接口,使用了 Closure,使得其代码看起来有点艺术,但是遗憾的是, PHP 本身的代码风格就是不太优雅的,纵使这样,让人感觉有很多的奇怪。Laravel 内部使用了依赖注入的 Service 架构反而增加的开发的成本,并且使用 Composer 的自动加载就是很麻烦的一件事情,如果 PHP 都这样玩了还不如直接用 Java。但是现实是,很多企业都选择了它。

前段时间看到一位同仁问另一位同事关于 PHP 中 use 和 require 的区别,Ta 弄不明白为什么有时候用 require, 有时候用 use; 而另外一个同事的回复让我更加不可思议,Ta 说 require 可以用来加载文件, Use 是用来加载类。他们可是有能力在使用了 Laravel 框架的大型复杂项目中编程的工程师,竟然搞不清这个问题,这些都是使用框架带来的笑话。

其实,我是不太喜欢 Laravel 框架的,抛开其他的不说,第一:它让开发成本大大增加,我认为,需求变化,代码需要修改是非常正常的事情,最重要的还不是架构,而是工程师对系统是不是足够熟悉,并且没有哪种架构能够在需求修改的情况下完全不修改代码。第二:框架应该解决的只是框架该做的事情,当一件事不能近乎完美的解决的时候,最好不要触碰;比如分页,比如 Migration,我第一次构建项目的时候,由于 Migration 太多,卡在那里半个小时没有反应,以为死掉了。

言归正传,开始 Migrations 教程。

Migration 是用来控制数据库版本的。

增加数据表,参数 --table 最好带上,命令如下:

php artisan make:migration create_tableName_table  --create=tableName

修改数据表,命令如下:

php artisan make:migration add_columnName_to_tableName_table --table=tableName

up down 方法的常用写法:

// 连接其他数据库
public function up()
    Schema::connection('name_dw')->create('dw_team_main_community_daily', function (Blueprint $table) {
        $table->increments('id')->comment('主键id号');
        $table->integer('team_id')->default(0)->comment('队伍id号');
        $table->string('team_name')->default('')->comment('队伍名称');
        $table->float('coverage_percent')->default(0)->comment('覆盖率');
        $table->timestamps();
        $table->index('team_id');
    });
}


public function down()
{
    Schema::connection('name_dw')->drop('dw_broker_main_community_daily');
}

// 默认数据库
public function up()
{
    Schema::table('community_team', function (Blueprint $table) {
        $table->renameColumn('team_id', 'agent_id');
        $table->integer('group_id')->default(0)->comment('组id号');
        $table->integer('broker_id')->default(0)->comment('经纪人id号');
    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::table('community_team', function (Blueprint $table) {
        $table->renameColumn('agent_id', 'team_id');
        $table->dropColumn('group_id');
        $table->dropColumn('broker_id');
    });
}

// 软删除
$table->softDeletes();

// double 精度
$table->double('standard_person_avg_rate', 15, 8)->default(0)->comment('人均达标率');

阅(533)评(0)查看评论

本文转载自:http://blog.lmlphp.com/archives/150/Migration_use_tutorial_of_web_artisan_framework_laravel

hosser
粉丝 192
博文 78
码字总数 4614
作品 3
徐汇
私信 提问
Laravel5.2之Demo——用Ajax来做个ToDoList(待更新)

引言 本文基于Laravel框架做的一个URL生成和存储demo,主要目的是学习使用Laravel框架。内容基于英文书籍《Packt.Laravel.Application.Development.Blueprints》第二章节,似乎没有中文版。书...

botkenni
2016/10/25
78
0
【开源访谈】范圣佑:关于 PHP 和 Laravel 不得不说的事

Laravel 作为一套知名度极广的 PHP 开发框架,素以简洁和优雅著称,那么相比其它 PHP 框架,它具体有哪些独特的优势?本期【开源访谈】邀请到来自台北的范圣佑老师,听听他眼中的 Laravel ,...

王练
2017/07/06
3.9K
26
这个PHP无解深坑,你能解出来吗?(听说能解出来的都很秀)

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由horstxu发表于云+社区专栏 1. 问题背景 PHP Laravel框架中的db migration是比较常用的一个功能了。在每个版本迭代中,除了...

腾讯云+社区
2018/09/21
0
0
【杭州】OSC源创会第64期报名开始

本期图文回顾链接:https://www.oschina.net/question/2686220_2246155 “毕竟西湖六月中,风光不与四时同”,趁着六月美景正好,OSC源创会也要再度来到杭州,带着自由、开放、分享的开源精神...

Alaise
2017/05/10
430
179
【杭州】OSC源创会第64期报名开始

本期图文回顾链接:https://www.oschina.net/question/2686220_2246155 “毕竟西湖六月中,风光不与四时同”,趁着六月美景正好,OSC源创会也要再度来到杭州,带着自由、开放、分享的开源精神...

Alaise
2017/05/10
26.5K
181

没有更多内容

加载失败,请刷新页面

加载更多

自建redis笔记

自建redis笔记 最近在linux安装了一下redis,特做一些笔记! 本文先单节点启动redis,然后再进行持久化配置,在次基础上,再分享搭建主从模式的配置以及Sentinel 哨兵模式及集群的搭建 单节点...

北极之北
25分钟前
4
0
vue+element之多表单验证

方法一:利用promise var p1=new Promise(function(resolve, reject) { this.$refs[form1].validate((valid) => { if(valid){ ......

沉迷代码我爱学习
27分钟前
4
0
golang 1.13 errors 包 新函数介绍

引 这次 errors 包算重量级更新。很有更能把以前的一些设计模式给推到。下面聊下用法。 error 装包 以前返回一个错误,想要保存 error 链,还要定义结构体保存以前的 error 信息。感兴趣看下...

guonaihong
36分钟前
53
0
并发编程之线程池

一、线程池 1、什么是线程池 Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序 都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。 第一:降...

codeobj
38分钟前
5
0
知识点总结思维导图模板分享,良心安利,建议收藏

思维导图经常被用在学习中,对大脑思维进行发散,对知识进行记忆。使用思维导图可以让知识更加简单更有层次。下面是利用思维导图所绘制的几款知识点总结思维导图模板,大家可以进行进行参考使...

干货趣分享
41分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部