创建表 - yii migrate/create
<name> 只包含字母、数字和下划线
[root@web-test001 api]# ./yii migrate/create create_test_table
Yii Migration Tool (based on Yii v2.0.15.1)
Create new migration '/home/wwwtest/test/api/console/migrations/m200422_031343_create_test_table.php'? (yes|no) [no]:yes
New migration created successfully.
每个数据库迁移都会被定义为一个继承自
yii\db\Migration
的 PHP 类。 类的名称按照m<YYMMDD_HHMMSS>_<Name>
的格式自动生成。
<YYMMDD_HHMMSS> 指执行创建迁移命令的 UTC 时间。
<Name> 和你执行命令时所带的 name 参数值相同。
在迁移类当中,你应当在up()
方法中编写改变数据库结构的代码。 你可能还需要在down()
方法中编写代码来恢复由up()
方法所做的改变。 当你通过 migration 升级数据库时,up()
方法将会被调用,反之,down()
将会被调用
<?php
use yii\db\Migration;
class m181126_114829_create_test_table extends Migration
{
public function up()
{
}
public function down()
{
echo "m181126_114829_create_test_table cannot be reverted.\n";
return false;
}
/*
// Use safeUp/safeDown to run migration code within a transaction
public function safeUp()
{
}
public function safeDown()
{
}
*/
}
创建字段
#简单属性创建
./yii migrate/create create_test_table--fields="title:string"
#制定更多属性创建
./yii migrate/create create_test_table--fields="title:string(12):notNull:unique,body:text"
#从 2.0.8 版本开始,生成器通过使用 foreignKey 关键字支持外键
./yii migrate/create create_test_table--fields="author_id:integer:notNull:foreignKey(user),category_id:integer:defaultValue(1):foreignKey,title:string,body:text"
迁移记录
./yii migrate/history
刷新迁移
yii migrate/fresh # 清空数据库并从头开始应用所有迁移。
demo
#创建Migration
./yii migrate/create user_vips
#创建model
./yii gii/model --ns=common\\models --tableName=user_vips --modelClass=UserVips
#用gii生成model 不指明ns则在console/models 下生成
#yii gii/model --ns=命名空间 --tableName=表全名 --modelClass=类名
#linux 命名空间\\
./yii gii/model --ns=common\\models --tableName=user --modelClass=ceshi
#windows 命名空间\
./yii gii/model --ns=common\models --tableName=user --modelClass=ceshi
#用gii生成crud
#yii gii/crud --modelClass=模型命名空间 --controllerClass=控制器
yii gii/crud --modelClass=common\\models\\Agreement --controllerClass=app\\controllers\\AgreementController
常用操作
yii\db\Migration::execute(): 执行一条 SQL 语句
insert(): 插入单行数据
batchInsert(): 插入多行数据
update(): 更新数据
delete(): 删除数据
createTable(): 创建表
renameTable(): 重命名表名
dropTable(): 删除一张表
truncateTable(): 清空表中的所有数据
addColumn(): 加一个字段
renameColumn(): 重命名字段名称
dropColumn(): 删除一个字段
alterColumn(): 修改字段
addPrimaryKey(): 添加一个主键
dropPrimaryKey(): 删除一个主键
addForeignKey(): 添加一个外键
dropForeignKey(): 删除一个外键
createIndex(): 创建一个索引
dropIndex(): 删除一个索引