Yii2如何用migrate快速建表
在advanced\console\migrations文件夹下有一个 m130524_201442_init.php 文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
<?php
use yii\db\Schema;
use yii\db\Migration;
class m130524_201442_init extends Migration
{
public function up()
{
$tableOptions = null;
if ( $this ->db->driverName === 'mysql' ) {
// http://stackoverflow.com/questions/766809/whats-the-difference-between-utf8-general-ci-and-utf8-unicode-ci
$tableOptions = 'CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=InnoDB' ;
}
$this ->createTable( '{{%user}}' , [
'id' => $this ->primaryKey(),
'username' => $this ->string()->notNull()->unique(),
'auth_key' => $this ->string(32)->notNull(),
'password_hash' => $this ->string()->notNull(),
'password_reset_token' => $this ->string()->unique(),
'email' => $this ->string()->notNull()->unique(),
'status' => $this ->smallInteger()->notNull()->defaultValue(10),
'created_at' => $this ->integer()->notNull(),
'updated_at' => $this ->integer()->notNull(),
], $tableOptions );
}
public function down()
{
$this ->dropTable( '{{%user}}' );
}
}
|
用cmd命令行进入advanced目录 ( 该目录下有yii.bat )
执行命令,选yes(输入y)
1
|
yii migrate console/migrations/m130524_201442_init.php
|
这样就在数据库中新建了一张表user和另一张表migration
其中migration表的内容大致如下,猜想这个version字段和每次执行命令时php文件的名字&文件里的class名有关,所以每次执行命令时需要改动文件名和文件里面的class名
那么,现在新建一张blog表,包含id、title、content、create_time四个字段
先将该php文件复制备份, 再将该文件重命名为m330524_201442_init.php(随机数字,只要和已有的version不同)
再将文件内的class m220524_201442_init extends Migration 中的 220524 改为 330524 (和文件名一样)
编辑字段内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<?php
use yii\db\Schema;
use yii\db\Migration;
class m220524_201442_init extends Migration
{
public function up()
{
$tableOptions = null;
if ( $this ->db->driverName === 'mysql' ) {
$tableOptions = 'CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE=InnoDB COMMENT="文章表"' ;
}
$this ->createTable( 'blog' , [
'id' => $this ->primaryKey(),
'title' => $this ->string(100)->notNull()->defaultValue( '' ),
'content' => $this ->text(),
'create_time' => $this ->datetime(),
], $tableOptions );
}
public function down()
{
$this ->dropTable( 'blog' );
}
}
|
最后执行命令,选yes
1
|
yii migrate console/migrations/m130524_201442_init.php
|
可以看到blog表建好了,随机添加两条数据无误
==========2019.7.23添加============
哎我图呢?......算了
如果要建一张新表
控制台先将路径切换到advanced根目录
yii migrate/create create_blog_table
输入y,回车。会在advanced\console\migrations目录下出现一个新文件m190723_023311_create_blog_table.php,其内容如下
<?phpuse yii\db\Migration;/*** Handles the creation of table `{{%blog}}`.*/ class m190723_023311_create_blog_table extends Migration {/*** {@inheritdoc}*/public function safeUp(){$this->createTable('{{%blog}}', ['id' => $this->primaryKey(),]);}/*** {@inheritdoc}*/public function safeDown(){$this->dropTable('{{%blog}}');} }
目前只有ID自增,现随便加几个字段
public function safeUp(){$this->createTable('{{%blog}}', ['id' => $this->primaryKey(),'title' => $this->string(100)->notNull()->defaultValue(''),'content' => $this->text(),'create_time' => $this->datetime(),]);}
这就准备好了,再在控制台中输入
yii migrate
输入y,回车,则看到mysql里面会增加几张表(migrations目录下有几个文件就新增几张表),其中一张就是blog表
转载于:https://www.cnblogs.com/longzhankunlun/p/6261417.html
Yii2如何用migrate快速建表相关推荐
- mysql快速建表工具_我所知道的MYSQL快速建表的3种方法
方法一:创建一模一样的表结构(包括索引,不包括表中数据)mysql> desc t_my_series; +-------------+------------+------+-----+--- ...
- PowerDesigner快速建表使用方法
PowerDesigner快速建表使用方法 简介: PowerDesigner是一个强大的数据库设计工具,通过可视化页面,通过配置一些属性可以快速实现数据的表单.存储过程.视图等创建.下面是Power ...
- DataGrip csv等文件 快速建表
-- 文件快速导入 快捷建表 效果 // _ooOoo_ // o8888888o // 88" . "88 // (| -_- |) // O\ = /O // ____/`-- ...
- 快站模板 连接mysql_建站实操:如何用CMS快速建站
设置完数据库后.回到浏览器打开刚才的页面,点击"创建配置文件". WordPress是基于PHP的blog程序.说它是blog,有点委屈它了.因为WordPress完全可以作为一个 ...
- 关于python manage.py makemigrations,python manage.py migrate不能建表
尊重原创:https://www.jb51.net/article/140960.htm 如果你想要重新生成表,就直接删除数据库对应的表,然后执行 python manage.py makemigra ...
- 前嗅ForeSpider教程:数据建表
今天,小编为大家带来的教程是:如何在前嗅ForeSpider中,进行数据建表操作及各注意事项.主要内容包括:快速建表,自由建表,字段参数,数据表的创建,关联与删除,以及表单变更后的配置修改. 一,如何 ...
- mysql建表的auto_increment_koa2+koa+mysql快速搭建nodejs服务器
用koa的脚手架koa-generator可以快速生成项目骨架,可以用于发开或者测试接口 https://github.com/hellojinjin123/node-koa2-template 1. ...
- Python学习笔记:7.2.3 Django快速建站 - 表单
前言:本文是学习网易微专业的<python全栈工程师 - Django快速建站>课程的笔记,欢迎学习交流.同时感谢老师们的精彩传授! 一.课程目标 创建用户管理应用 开发用户登录功能 理解 ...
- 快速建站 python_Django简单快捷建站(适合做大作业)
介绍下基础的Django开发网站,适合动手能力差的,做大作业的,没什么开发基础的人. 新建项目 安装Pycharm,在里面新建一个Django项目,什么都不用设置,然后Pycharm下方点击Termi ...
- oracle 创建表空间 pcincrease,oracle建表空间 各种语句
oracle建表空间 各种语句 在创建用户之前,先要创建表空间: 其格式为:格式: create tablespace 表间名 datafile '数据文件名' size 表空间大小; 如: SQL& ...
最新文章
- 测序仪的序列:DNA测序的历史
- Linux无盘工作站架设实例
- 查看Linux软件信息
- redis stream持久化_Beetlex.Redis之Stream功能详解
- python查看关键字列表的命令是_Python 41 完整查询语句 和 一堆关键字
- 开发一个iOS应用没有那么容易
- Linux下禁止使用swap及防止OOM机制导致进程被kill掉
- 手把手教你搭建FastDFS集群(上)
- centos 6.4 安装java_CentOS6.4 64位系统安装jdk 转载
- PDF转换成word转换器绿色版使用步骤
- Java程序设计基础学习
- ASPCMS调用分类名称及链接
- Java整合FFmpeg截取视频某一帧为图片
- R485集线器定协议有多少种能否抗干扰?
- STM32CubeMX学习笔记(25)——FatFs文件系统使用(操作SPI Flash)
- 手机APP系统开发流程
- WWW网上下载管理器
- Flutter Icons图标库地址
- Touchgfx基础入门一
- 前端面试35k题库2021-@莫成尘
热门文章
- Hystrix dashbord 服务降级熔断限流监控介绍
- Android入门笔记01
- java 字符串长度_ava练习实例:java字符串长度与Java String charAt() 方法 (建议收藏)...
- 服务器安装python虚拟环境
- matplotlib中文乱码的两种解决方案
- ipython notebook使用教程
- 深度学习(三十二)半监督阶梯网络学习笔记-NIPS 2015
- Python基于OpenCV实现视频数据切割为图像数据
- SQLServer数据库增、删、改、查简单操作示例
- Visual Studio 2017 警告C4819解决方案