yii2 migrate 数据库迁移的简单分享
开发中经常会用到的方法小结:
1、./yii migrate xxx_xx 在表中插入某字段 :
public function up()
{$this->addColumn('{{application_service}}', 'auditor', 'INT(10) NOT NULL COMMENT "审核人" AFTER 'user_id', CHANGE COLUMN `status` `status` tinyint(4) NOT NULL COMMENT "绑定状态,0:解绑 1:绑定" AFTER 'auditor'');
}
2. 修改表中某字段:
public function up()
{$this->alterColumn('{{application_service}}', 'status', 'SMALLINT(4) NOT NULL DEFAULT 0 COMMENT "绑定状态,0:解绑 1:未绑定 2:审核中 3:审核通过 4:审核拒绝 5:禁用"');
}
增加索引:
public function up()
{$this->createIndex('created_at', "{{app_base}}", ['created_at'],true);
}
创建数据表:
public function up()
{
$tableOptions = null;
if ($this->db->driverName === 'mysql') {
$tableOptions = 'CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE=InnoDB COMMENT="菜单表"';
}
$this->createTable('{{%menu}}', [
'id' => $this->primaryKey(),
'parent_id' => $this->integer(11)->defaultValue(0)->comment('父级菜单id'),
'menu_name' => $this->string(100)->notNull()->comment('菜单名称'),
'menu_type' => $this->string(100)->notNull()->comment('菜单类型(menu菜单,sub_menu子菜单)'),
'menu_action' => $this->string(100)->notNull()->comment('菜单链接'),
'menu_roles' => $this->string(100)->comment('角色'),
'menu_depth' => $this->smallInteger(1)->defaultValue(0)->comment('菜单深度'),
'menu_icon' => $this->text()->comment('ICON代码:图标'),
'menu_des' => $this->text()->comment('菜单简介'),
'menu_order' => $this->smallInteger(1)->defaultValue(0)->comment('显示顺序'),
'menu_show' => $this->smallInteger(1)->defaultValue(0)->comment('是否显示(0:显示, 1:不显示)'),
'created_at' => $this->integer(),
'updated_at' => $this->integer(),
], $tableOptions);
}
删除某字段:
public function down()
{$this->dropColumn('{{app_base}}', 'manager_id');
}
删除某张表:
public function down()
{$this->dropTable('{{%file_storage_item}}');
}
2/./yii migrate 默认执行 ./yii migrate/up
./yii migrate/down 执行某些撤销对表的操作 ./yii migratre/to (迁移文件名)执行某个指定的迁移文件 在创建数据表的过程中可以同时声称多张表,删除多张表 执行过的迁移文件,会在数据库的migration 中生成一条记录,记录此迁移文件已经执行过,下次将执行数据表中不存在的迁移文件 注意: ./yii migrate/down 此命令执行不只删除了对数据库的操作同时也会删除migration数据表中的执行记录
yii2 migrate 数据库迁移的简单分享的更多相关文章
- flask 数据库迁移的简单操作
1.目的:修改现有数据库的表结构,不改变数据库中现有的数据. 2.导包:from flask_migrate import Migrate, MigrateCommandfrom flask_scri ...
- migrate数据库迁移
可先参看博友的博文:https://segmentfault.com/a/1190000005599416 由于Yii migrate 生成的迁移文件默认是存放在 console/migrations ...
- Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]解决
Laravel5.x运行迁移命令创建数据表:php artisan migrate报错. Illuminate\Database\QueryException : SQLSTATE[42000]: ...
- Flask_Migrate数据库迁移
migrate数据库迁移 有models,没有迁移仓库.本地新建数据库:首次创建迁移仓库.迁移脚本:执行迁移脚本生成数据库表: python manage.py db init python mana ...
- 数据库迁移之从oracle 到 MySQL最简单的方法
数据库迁移之从oracle 到 MySQL最简单的方法 因工作需要将oracle数据库换到MySQL数据库,数据量比较大,百万级别的数据,表也比较多,有没有一种既快捷又安全的方法呢?答案是肯定的,下面 ...
- 让Code First下的数据库的迁移更加简单
Code First给我们的程序开发带了很多便利,之前的版本中一个比较不大方便的地方是数据库迁移,麻烦不说,往往还和上下文相关,在不同的版本之间的数据库进行迁移还很容易失败,并且一旦失败还不大容易找到 ...
- yii 数据库迁移
在我们开发程序的过程中,数据库的结构也是不断调整的.我们的开发中要保证代码和数据库库的同步.因为我们的应用离不开数据库.例如: 在开发过程中,我们经常需要增加一个新的表,或者我们后期投入运营的产品,可 ...
- laravel数据库迁移(三)
laravel号称世界上最好的框架,数据库迁移算上一个,在这里先简单入个门: laravel很强大,它把表中的操作写成了migrations迁移文件,然后可以直接通过迁移文件来操作表.所以 , 数据迁 ...
- Code First开发系列之数据库迁移
返回<8天掌握EF的Code First开发>总目录 本篇目录 开启并运行迁移 使用迁移API 应用迁移 给已存在的数据库添加迁移 EF的其他功能 本章小结 自我测试 本系列的源码本人已托 ...
随机推荐
- python3编程基础之一:标识符
每种编程语言都是需要处理数据的,需要变量.函数.类等,而这些都是通过名称访问的.因此,能够作为变量.函数.类等名称的字符串就是标识符.数据,是计算机进行运算的实体.标识符,用来标记的符号,它会指向一个 ...
- vue中class用法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Linux CentOS 使用Yum源安装MySQL 5.7
在CentOS(Fedora.RedHat)系统中,可以使用yum install mysql命令来安装MySQL,但所安装的MySql版本一般都较旧,所以更推荐通过源码编译安装或下载最新rpm安装包 ...
- ArcGIS超级工具SPTOOLS1.7升级说明
ArcGIS超级工具1.7升级说明:多了:5个工具,总87工具. 5.11 数据打包 44 5.11.1. mxd批量打包MPK:对一个文件夹所有MXD打包MPK 5.11.2. mxd文档发 ...
- HBase-概述
一种分布式.可扩展.支持海量数据存储的 NoSQL 数据库. 逻辑上,HBase 的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列.但从 HBase 的底层物理存储结构(K-V)来看,HB ...
- Python日志库logging总结-可能是目前为止将logging库总结的最好的一篇文章
在部署项目时,不可能直接将所有的信息都输出到控制台中,我们可以将这些信息记录到日志文件中,这样不仅方便我们查看程序运行时的情况,也可以在项目出现故障时根据运行时产生的日志快速定位问题出现的位置. 1. ...
- 一百四十:CMS系统之使用flask-paginate实现分页功能
官方文档:https://pythonhosted.org/Flask-paginate/ 安装:pip install flask-paginate 在没有分页的情况下,默认会加载所有内容 在con ...
- ABAP编辑器输入中文变成问号
在ABAP编辑器里输入汉字,点击空格后显示问号? 中英文环境下编辑都出现乱码 实用程序->设置 ->基于文本的编辑器 如果用老式编辑器,可以输入中文 试试打个补丁 GUI740 补丁17 ...
- Node.js event loop 和 JS 浏览器环境下的事件循环的区别
Node.js event loop 和 JS 浏览器环境下的事件循环的区别: 1.线程与进程: JS 是单线程执行的,指的是一个进程里只有一个主线程,那到底什么是线程?什么是进程? 进程是 CPU ...
- .NET C#获取当前网页地址信息
设当前页完整地址是:http://www.qiandabao.com/aaa/bbb.aspx?id=5&name=kelli "http://"是协议名"www ...