Yii 2 创建 migration 给表添加字段的例子

使用 Yii 2 框架的 migration 也是挺方便的,现代 PHP 开发框架都具备这个特性,使用 migration 数据库迁移功能,对数据库进行操作,它的意义在于记录下数据库修改的版本,而且方便项目的部署,数据库的回滚,不需要手动操作线上的数据库。

创建一个 migration

执行 yii 命令:

php yii migrate/create add_column_rsync_sh_to_conf_table

这样就生成了一个 migration 数据库迁徙文件。

我要给 Project 表添加一个字段 rsync_sh,在生成的文件中定义代码如下:

class m160730_064717_add_column_rsync_sh_to_conf_table extends Migration
{
    public function up()
    {
        $this->addColumn('project', 'rsync_sh', Schema::TYPE_STRING . '(200) DEFAULT "" COMMENT "执行sh脚本名称"');
    }
 
    public function down()
    {
        echo 'add column rsync_sh success!';
        return false;
    }
}

再执行yii命令:

php yii migrate

同样它会提示你是否要执行,输入 yes 即可,这样就给表增加了一个字段。

题外话:

只要学会了一门现代化的 PHP 框架,这些概念都是一样的,在 Laravel 中有的概念在 Yii 2 同样有,所以用起来也很快速上手,只需要简单看看文档就可以了,重点还是要遵循这种规范。另外,框架是为了方便开发,而不能被框架束缚。学习现代化的框架,也是为了学习现代化的 PHP 开发模式,以及设计模式,而无论用什么框架,WEB 开发的本质是不变的。

时间: 2024-09-14 15:58:48

Yii 2 创建 migration 给表添加字段的例子的相关文章

FuncADDColumn(为表添加字段)

用于为表添加字段.可以侦测表中有没有这字段.如果没有,添加该字段. /*author:nybtime   :2003/12/29fixtime :aim    :看表中是否有这个字段,如果没有,添加上input  : 调用:execute FuncADDColumn 'a','c','int'execute FuncADDColumn 'a','ddd','varchar(100)'*/CREATE   PROCEDURE FuncADDColumn@tablename  varchar(128

mysql给表添加字段的命令

  给表添加字段的命令: ? 1 alter table tableName add newColumn varchar(8) comment '新添加的字段' 在这句语句中需要注意的是,comment为注释,就像在java中//作用是一样的. comment后需要加单引号将注释引起来.

oracle大表添加字段default经验分享

当oracle单表数据量上亿时,对表进行alter table aa add column_1 varchar2(2) defalut 'Y';时,效率及安全性是必须考虑的因素. 本帖以2亿的数据表aa举例: alter table aa add column_1 varchar2(2) defalut 'Y'; Table altered Executed in 3600 seconds 直接用了一个小时,而且在这过程中是加上了表级锁,也就是连查询都是会被等待的,这是相当危险的操作. 为什么会

MySQL和Oracle的添加字段的处理差别

昨天在微信群中有个朋友也是无意中问了一下,说数据库中的表字段想保持一种相对规范的顺序,怎么办?要知道Oracle中这个操作就比较纠结了,因为是按照追加的方式来处理的.没法在已有的字段1,字段2中间添加一个字段3.但是MySQL却可以,这个方面MySQL看起来要灵活的多,这个是什么原因呢,他们在设计上有什么差别呢. MySQL中对每个表存在一个定义文件,即frm文件,我们来取出一个表,看看能不能简单解析一下. 比如一个表字段的内容如下: > desc zd_warshrine_prostate;

要做一个对数据库进行添加字段和表的向导系统,我应该怎么做。。。

问题描述 如题,好迷茫,求助...我首先应该怎么做...用winfrom做 解决方案 解决方案二:如果你只能罗列一些高大上的名词而说不出这个向导的任何具体功能,那么当然会很迷茫解决方案三:你先看看数据库客户端的可视化界面是如何做的,然后根据它去想你的向导应该有什么功能先sqlserver数据库就看查询分析器好了oracle数据库可以看看plsql是怎么干的然后遇到具体的问题你再问解决方案四:我现在都不是很清楚,只知道要求是要对数据库能进行添加字段和表.之前一直在写数据字典,突然给一个这样的任务,

mysql数据库入门(创建库/表 添加数据)

简介 MySQL 是一个真正的多用户.多线程SQL 数据库服务器.SQL (结构化查询语言) 是世界上最流行的和标准化的数据库语言. MySQL 是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld 和很多不同的客户程序和库组成.MySQL在windows上不区分大小写,Linux上表名区分大小写 MySQL主要目标是快速.健壮和易用 MySQL 具有运行速度很快.容易使用.支持查询语言.多个用户可同时连接客户机和服务器.可以运行在各种版本的UNIX以及非UNIX的系统上等优点.

Accessa如何在表添加现有字段

  ​1.打开你想要添加字段的数据表,然后点击菜单栏上的 数据表. 2.在数据表 选项中,我么点击 添加现有字段. 3.在界面的右边出现了 字段列表 的面板.,我们看到在这个面板中,有一个表,名字叫做"百度经验",我们点击左边这个加号,这样就展开了该表中的字段 计算字段"> 4.拖拽字段到表中,操作方法如下图. 5.弹出了添加字段的想到,我们双击可用字段中的字段就能添加字段到新的表,然后点击下一步 6.接着点击下一步 7.最后点击完成.

hibernate-数据库表增加字段后如何在获取历史数据时添加默认值?

问题描述 数据库表增加字段后如何在获取历史数据时添加默认值? 表增加了一个字段,定义是基本类型有默认值,新生成的数据没问题但是历史数据该字段都是空值,导致程序会出错,JavaBean中的字段类型double和数据库中的空值不匹配,本来想在get和set中做点文章,返回一个默认值,但是用hibernate的detachedCriteria查询返回的list直接就报null的错误,set方法都没执行,不知道是什么原理为什么set方法都没执行,是不是在set传入变量的时候就发现空值然后就报错了?另外有

c#-EF框架DBfirst,表的字段增加后,实体的字段无法同步添加

问题描述 EF框架DBfirst,表的字段增加后,实体的字段无法同步添加 如题,后期因为用户要求在一张表里添加了一个字段,然后想在实体里更新一下.通过从数据库更新到模型后会提示报错,"已存在具有相同键的条目".我把模型删了之后,重新添加也不行删除后整个模型都添加不了,而且报的错误与之前相同.如果把整个模型都删除,重新弄得话,确实可以.但是数据库里有很多表都是没用.跪求大神帮助.刚学EF的菜鸟一个!!!! 解决方案 微软主推的是CodeFrist 如果担心自己学习速度 或者习惯于DBfi