linux yii 数据库迁移,Yii 使用migrations实现数据库迁移

您现在的位置是:网站首页>>PHP>>Yii

Yii 使用migrations实现数据库迁移

发布时间:2019-04-09 18:00:51作者:wangjian浏览量:703点赞量:0

在我们开发过程中,时常会遇到数据库的变动,由于数据库的结构会时常发生变化,这时候我们就可以使用Yii提供的数据库迁移(migrations)功能来实现记录数据库的变化

一:migrations相关命令说明

我们在指定项目中使用命令行输入php yii

这时候我们可以看到migrate相关命令

3647cf836b1eda373dd67e2c369a2213.png

相关命令解释:

php yii migrate/create  #创建新的迁移

php yii migrate/down #还原迁移

php yii migrate/fresh #清空数据库并从头开始应用所有迁移

php yii migrate/history #显示迁移历史

php yii migrate/mark #修改迁移历史

php yii migrate/new  #显示未提交的迁移

php yii migrate/redo #重做迁移(先还原指定的迁移,然后再次提交)

php yii migrate/to #提交指定迁移

php yii  migrate/up (default) #提交所有迁移

二:创建迁移

使用如下命令yii migrate/create user

这时候会在@app/migrations 目录下创建一个新的名为m190409_094813_user.php的文件

m190409_094813_user.php文件内容如下<?php

use yii\db\Migration;

/**

* Class m190409_094813_user

*/

class m190409_094813_user extends Migration

{

/**

* {@inheritdoc}

*/

public function safeUp()

{

}

/**

* {@inheritdoc}

*/

public function safeDown()

{

echo "m190409_094813_user cannot be reverted.\n";

return false;

}

}

文件中的safeUp()方法用于编写改变数据库结构代码,safeDown()方法用于编写回复safeUp()方法内编写的代码

例(创建一个user表):<?php

use yii\db\Migration;

/**

* Class m190409_094813_user

*/

class m190409_094813_user extends Migration

{

/**

* {@inheritdoc}

*/

public function safeUp()

{

//创建user表

$this->createTable('{{%user}}', [

'exam_id' => $this->primaryKey()->comment('用户ID'),

'user_no' => $this->string(64)->notNull()->defaultValue('')->comment('用户编号'),

'user_name' => $this->string(255)->notNull()->defaultValue('')->comment('用户名称'),

'status' => $this->tinyInteger(2)->notNull()->defaultValue(0)->comment('状态:0 禁用 1开启'),

'password' => $this->string(255)->notNull()->comment('密码'),

'create_time' => $this->integer()->notNull()->defaultValue(0)->comment('创建时间'),

'update_time' => $this->integer()->notNull()->defaultValue(0)->comment('更新时间'),

'creater_id' => $this->integer()->notNull()->defaultValue(0)->comment('创建人ID'),

'creater_ip' => $this->string(63)->notNull()->defaultValue('')->comment('创建人IP')

], 'CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=MyISAM COMMENT=\'用户表\'');

$this->createIndex('user_no', '{{%user}}', 'user_no');//创建索引

}

/**

* {@inheritdoc}

*/

public function safeDown()

{

//删除索引

$this->dropIndex('user_no', '{{%user}}');

//删除表

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

}

}

二:提交迁移php yii migrate

这时候我们的数据库就会出现相应的变化,如上命令是提交所有未提交的迁移,提交指定迁移可以使用:php yii migrate/to m190409_094813_user #m190409_094813_user表示指定迁移的文件名

三:还原迁移php yii migrate/down #还原最近一次的迁移

php yii migrate/down 3 #还原最近三次迁移

以上为Yii中数据库迁移的基本使用

272a2ff497ff398701eef161070cd122.png

0

+1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值