在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四个字段

  1. 先将该php文件复制备份, 再将该文件重命名为m330524_201442_init.php(随机数字,只要和已有的version不同)

  2. 再将文件内的class m220524_201442_init extends Migration 中的 220524 改为 330524 (和文件名一样)

  3. 编辑字段内容

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快速建表相关推荐

  1. mysql快速建表工具_我所知道的MYSQL快速建表的3种方法

    方法一:创建一模一样的表结构(包括索引,不包括表中数据)mysql> desc t_my_series; +-------------+------------+------+-----+--- ...

  2. PowerDesigner快速建表使用方法

    PowerDesigner快速建表使用方法 简介: PowerDesigner是一个强大的数据库设计工具,通过可视化页面,通过配置一些属性可以快速实现数据的表单.存储过程.视图等创建.下面是Power ...

  3. DataGrip csv等文件 快速建表

    -- 文件快速导入 快捷建表 效果 // _ooOoo_ // o8888888o // 88" . "88 // (| -_- |) // O\ = /O // ____/`-- ...

  4. 快站模板 连接mysql_建站实操:如何用CMS快速建站

    设置完数据库后.回到浏览器打开刚才的页面,点击"创建配置文件". WordPress是基于PHP的blog程序.说它是blog,有点委屈它了.因为WordPress完全可以作为一个 ...

  5. 关于python manage.py makemigrations,python manage.py migrate不能建表

    尊重原创:https://www.jb51.net/article/140960.htm 如果你想要重新生成表,就直接删除数据库对应的表,然后执行 python manage.py makemigra ...

  6. 前嗅ForeSpider教程:数据建表

    今天,小编为大家带来的教程是:如何在前嗅ForeSpider中,进行数据建表操作及各注意事项.主要内容包括:快速建表,自由建表,字段参数,数据表的创建,关联与删除,以及表单变更后的配置修改. 一,如何 ...

  7. mysql建表的auto_increment_koa2+koa+mysql快速搭建nodejs服务器

    用koa的脚手架koa-generator可以快速生成项目骨架,可以用于发开或者测试接口 https://github.com/hellojinjin123/node-koa2-template 1. ...

  8. Python学习笔记:7.2.3 Django快速建站 - 表单

    前言:本文是学习网易微专业的<python全栈工程师 - Django快速建站>课程的笔记,欢迎学习交流.同时感谢老师们的精彩传授! 一.课程目标 创建用户管理应用 开发用户登录功能 理解 ...

  9. 快速建站 python_Django简单快捷建站(适合做大作业)

    介绍下基础的Django开发网站,适合动手能力差的,做大作业的,没什么开发基础的人. 新建项目 安装Pycharm,在里面新建一个Django项目,什么都不用设置,然后Pycharm下方点击Termi ...

  10. oracle 创建表空间 pcincrease,oracle建表空间 各种语句

    oracle建表空间 各种语句 在创建用户之前,先要创建表空间: 其格式为:格式: create tablespace 表间名 datafile '数据文件名' size 表空间大小; 如: SQL& ...

最新文章

  1. 测序仪的序列:DNA测序的历史
  2. Linux无盘工作站架设实例
  3. 查看Linux软件信息
  4. redis stream持久化_Beetlex.Redis之Stream功能详解
  5. python查看关键字列表的命令是_Python 41 完整查询语句 和 一堆关键字
  6. 开发一个iOS应用没有那么容易
  7. Linux下禁止使用swap及防止OOM机制导致进程被kill掉
  8. 手把手教你搭建FastDFS集群(上)
  9. centos 6.4 安装java_CentOS6.4 64位系统安装jdk 转载
  10. PDF转换成word转换器绿色版使用步骤
  11. Java程序设计基础学习
  12. ASPCMS调用分类名称及链接
  13. Java整合FFmpeg截取视频某一帧为图片
  14. R485集线器定协议有多少种能否抗干扰?
  15. STM32CubeMX学习笔记(25)——FatFs文件系统使用(操作SPI Flash)
  16. 手机APP系统开发流程
  17. WWW网上下载管理器
  18. Flutter Icons图标库地址
  19. Touchgfx基础入门一
  20. 前端面试35k题库2021-@莫成尘

热门文章

  1. Hystrix dashbord 服务降级熔断限流监控介绍
  2. Android入门笔记01
  3. java 字符串长度_ava练习实例:java字符串长度与Java String charAt() 方法 (建议收藏)...
  4. 服务器安装python虚拟环境
  5. matplotlib中文乱码的两种解决方案
  6. ipython notebook使用教程
  7. 深度学习(三十二)半监督阶梯网络学习笔记-NIPS 2015
  8. Python基于OpenCV实现视频数据切割为图像数据
  9. SQLServer数据库增、删、改、查简单操作示例
  10. Visual Studio 2017 警告C4819解决方案