Trait yii\db\SchemaBuilderTrait

Implemented byyii\db\Migration
可用自版本2.0.6
源代码 https://github.com/yiisoft/yii2/blob/master/framework/db/SchemaBuilderTrait.php

SchemaBuilderTrait 包含创建 yii\db\ColumnSchemaBuilder 实例的快捷方法.

这些可用于数据库迁移中, 以使用 PHP 接口定义数据库模式类型. 这对于以独立于 DBMS 的方式定义模式很有用, 这样应用程序可以以相同的方式在不同的 DBMS 上运行.

例如, 你可以在迁移文件中使用以下代码:

$this->createTable('example_table', [
  'id' => $this->primaryKey(),
  'name' => $this->string(64)->notNull(),
  'type' => $this->integer()->notNull()->defaultValue(10),
  'description' => $this->text(),
  'rule_name' => $this->string(64),
  'data' => $this->text(),
  'created_at' => $this->datetime()->notNull(),
  'updated_at' => $this->datetime(),
]);

公共方法

隐藏继承的方法

方法描述定义在
bigInteger() 创建一个 bigint 列. yii\db\SchemaBuilderTrait
bigPrimaryKey() 创建一个大的主键列. yii\db\SchemaBuilderTrait
binary() 创建一个 binary 列. yii\db\SchemaBuilderTrait
boolean() 创建一个 boolean 列. yii\db\SchemaBuilderTrait
char() 创建一个 char 列. yii\db\SchemaBuilderTrait
date() 创建一个 date 列. yii\db\SchemaBuilderTrait
dateTime() 创建一个 datetime 列. yii\db\SchemaBuilderTrait
decimal() 创建一个 decimal 列. yii\db\SchemaBuilderTrait
double() 创建一个 double 列. yii\db\SchemaBuilderTrait
float() 创建一个 float 列. yii\db\SchemaBuilderTrait
integer() 创建一个 integer 列. yii\db\SchemaBuilderTrait
json() 创建一个 JSON 列. yii\db\SchemaBuilderTrait
money() 创建一个 money 列. yii\db\SchemaBuilderTrait
primaryKey() 创建一个主键列. yii\db\SchemaBuilderTrait
smallInteger() 创建一个 smallint 列. yii\db\SchemaBuilderTrait
string() 创建一个 string 列. yii\db\SchemaBuilderTrait
text() 创建一个 text 列. yii\db\SchemaBuilderTrait
time() 创建一个 time 列. yii\db\SchemaBuilderTrait
timestamp() 创建一个 timestamp 列. yii\db\SchemaBuilderTrait
tinyInteger() 创建一个 tinyint 列. 如果 DBMS 不支持 tinyint, 则将使用 smallint. yii\db\SchemaBuilderTrait

受保护的方法

隐藏继承的方法

方法描述定义在
getDb() yii\db\SchemaBuilderTrait

方法详情

bigInteger() public 方法 (可用自版本: 2.0.6)

创建一个 bigint 列.

public yii\db\ColumnSchemaBuilder bigInteger ( $length null )
$length integer

列大小或精度定义. 如果 DBMS 不支持, 则将忽略此参数.

return yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例.

bigPrimaryKey() public 方法 (可用自版本: 2.0.6)

创建一个大的主键列.

public yii\db\ColumnSchemaBuilder bigPrimaryKey ( $length null )
$length integer

列大小或精度定义. 如果 DBMS 不支持, 则将忽略此参数.

return yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例.

binary() public 方法 (可用自版本: 2.0.6)

创建一个 binary 列.

public yii\db\ColumnSchemaBuilder binary ( $length null )
$length integer

列大小或精度定义. 如果 DBMS 不支持, 则将忽略此参数.

return yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例.

boolean() public 方法 (可用自版本: 2.0.6)

创建一个 boolean 列.

public yii\db\ColumnSchemaBuilder boolean ( )
return yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例.

char() public 方法 (可用自版本: 2.0.8)

创建一个 char 列.

public yii\db\ColumnSchemaBuilder char ( $length null )
$length integer

列大小定义, 即最大字符串长度. 如果 DBMS 不支持, 则将忽略此参数.

return yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例.

date() public 方法 (可用自版本: 2.0.6)

创建一个 date 列.

public yii\db\ColumnSchemaBuilder date ( )
return yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例.

dateTime() public 方法 (可用自版本: 2.0.6)

创建一个 datetime 列.

public yii\db\ColumnSchemaBuilder dateTime ( $precision null )
$precision integer

列值精度. 传递给列类型的第一个参数, eg. DATETIME(precision). 如果 DBMS 不支持, 则将忽略此参数.

return yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例.

decimal() public 方法 (可用自版本: 2.0.6)

创建一个 decimal 列.

public yii\db\ColumnSchemaBuilder decimal ( $precision null, $scale null )
$precision integer

列值精度, 通常是总位数. 传递给列类型的第一个参数, eg. DECIMAL(precision, scale). 如果 DBMS 不支持, 则将忽略此参数.

$scale integer

列值小数位数, 通常是小数点后的位数. 传递给列类型的第一个参数, eg. DECIMAL(precision, scale). 如果 DBMS 不支持, 则将忽略此参数.

return yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例.

double() public 方法 (可用自版本: 2.0.6)

创建一个 double 列.

public yii\db\ColumnSchemaBuilder double ( $precision null )
$precision integer

列值精度. 传递给列类型的第一个参数, eg. DOUBLE(precision). 如果 DBMS 不支持, 则将忽略此参数.

return yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例.

float() public 方法 (可用自版本: 2.0.6)

创建一个 float 列.

public yii\db\ColumnSchemaBuilder float ( $precision null )
$precision integer

列值精度. 传递给列类型的第一个参数, eg. FLOAT(precision). 如果 DBMS 不支持, 则将忽略此参数.

return yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例.

getDb() protected abstract 方法

protected abstract yii\db\Connection getDb ( )
return yii\db\Connection

用于模式构建的数据库连接.

integer() public 方法 (可用自版本: 2.0.6)

创建一个 integer 列.

public yii\db\ColumnSchemaBuilder integer ( $length null )
$length integer

列大小或精度定义. 如果 DBMS 不支持, 则将忽略此参数.

return yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例.

json() public 方法 (可用自版本: 2.0.14)

创建一个 JSON 列.

public yii\db\ColumnSchemaBuilder json ( )
return yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例.

throws yii\base\Exception
money() public 方法 (可用自版本: 2.0.6)

创建一个 money 列.

public yii\db\ColumnSchemaBuilder money ( $precision null, $scale null )
$precision integer

列值精度, 通常是总位数. 传递给列类型的第一个参数, eg. DECIMAL(precision, scale). 如果 DBMS 不支持, 则将忽略此参数.

$scale integer

列值小数位数, 通常是小数点后的位数. 传递给列类型的第一个参数, eg. DECIMAL(precision, scale). 如果 DBMS 不支持, 则将忽略此参数.

return yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例.

primaryKey() public 方法 (可用自版本: 2.0.6)

创建一个主键列.

public yii\db\ColumnSchemaBuilder primaryKey ( $length null )
$length integer

列大小或精度定义. 如果 DBMS 不支持, 则将忽略此参数.

return yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例.

smallInteger() public 方法 (可用自版本: 2.0.6)

创建一个 smallint 列.

public yii\db\ColumnSchemaBuilder smallInteger ( $length null )
$length integer

列大小或精度定义. 如果 DBMS 不支持, 则将忽略此参数.

return yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例.

string() public 方法 (可用自版本: 2.0.6)

创建一个 string 列.

public yii\db\ColumnSchemaBuilder string ( $length null )
$length integer

列大小定义, 即最大字符串长度. 如果 DBMS 不支持, 则将忽略此参数.

return yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例.

text() public 方法 (可用自版本: 2.0.6)

创建一个 text 列.

public yii\db\ColumnSchemaBuilder text ( )
return yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例.

time() public 方法 (可用自版本: 2.0.6)

创建一个 time 列.

public yii\db\ColumnSchemaBuilder time ( $precision null )
$precision integer

列值精度. 传递给列类型的第一个参数, eg. TIME(precision). 如果 DBMS 不支持, 则将忽略此参数.

return yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例.

timestamp() public 方法 (可用自版本: 2.0.6)

创建一个 timestamp 列.

public yii\db\ColumnSchemaBuilder timestamp ( $precision null )
$precision integer

列值精度. 传递给列类型的第一个参数, eg. TIMESTAMP(precision). 如果 DBMS 不支持, 则将忽略此参数.

return yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例.

tinyInteger() public 方法 (可用自版本: 2.0.14)

创建一个 tinyint 列. 如果 DBMS 不支持 tinyint, 则将使用 smallint.

public yii\db\ColumnSchemaBuilder tinyInteger ( $length null )
$length integer

列大小或精度定义. 如果 DBMS 不支持, 则将忽略此参数.

return yii\db\ColumnSchemaBuilder

可以进一步自定义的列实例.