一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

MAC下YII 2 MIGRATE命令操作数据库

时间:2015-11-19 编辑:简简单单 来源:一聚教程网

下面是在Mac下使用 Yii 2 migrate 命令安装初始化数据库

yii-migrate1

必须首先有PHP系统环境变量,才能执行Yii命令行。在终端输入:php yii,即列出所有可用的Yii命令。

yii-migrate2

输入php yii migrate,它会自动列出可用的migrate文件,这里只有一个文件,它会自动去/console/migrations/文件夹去寻找migrate数据库迁徙文件。

当我们输入yes,也就执行了这个操作,应用这个migrate文件,就创建了数据表。如下图:

sequel-yii2

migrate迁徙文件:migrations/m130524_201442_init.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') {
                      $tableOptions = 'CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=InnoDB';
        }

        $this->createTable('{{%user}}', [
            'id' => Schema::TYPE_PK,
            'username' => Schema::TYPE_STRING . ' NOT NULL',
            'auth_key' => Schema::TYPE_STRING . '(32) NOT NULL',
            'password_hash' => Schema::TYPE_STRING . ' NOT NULL',
            'password_reset_token' => Schema::TYPE_STRING,
            'email' => Schema::TYPE_STRING . ' NOT NULL',

            'status' => Schema::TYPE_SMALLINT . ' NOT NULL DEFAULT 10',
            'created_at' => Schema::TYPE_INTEGER . ' NOT NULL',
            'updated_at' => Schema::TYPE_INTEGER . ' NOT NULL',
        ], $tableOptions);
    }

    public function down()
    {
        $this->dropTable('{{%user}}');
    }
}

可见yii的migrate文件都需要实现up和down两个方法,顾名思义一个是安装,一个是删除数据表。

一个好的开发规范是把数据库结构写成migrate文件,包括初始化数据,这样在部署或者迁徙数据库的时候极为方便,也就是先麻烦,后爽快。

热门栏目