在MIgrations中使用Schema Builder Trait时指定unsigned属性?

时间:2015-09-01 10:52:03

标签: yii2

我必须在yii2迁移中将列指定为unsigned 手动

的迁移代码示例
public function up()
{
    $this->createTable('news', [
        'id' => $this->primaryKey(),
        'title' => $this->string()->notNull()
    ]);
}

从我所做的研究中,似乎没有一种方法可以在模式构建器特征中添加未签名的功能。

但是还有其他方法可以在使用schemaBuilderTrait样式方法的同时将无符号属性添加到列中吗?

例如,上面的$this->string()会返回yii\db\ColumnSchemaBuilder的实例,但是它甚至没有设置无符号/签名的属性..

2 个答案:

答案 0 :(得分:7)

不幸的是,使用新的迁移语法无法编写一些内容。

在这种情况下,您可以使用字符串连接:

Background

或者,您可以使用旧语法(观察到向后兼容性):

'title' => $this->string()->notNull() . ' UNSIGNED',

P.S。您可以针对此问题在官方框架回购中发布问题。

更新:已经实施,请使用use yii\db\Schema; ... 'title' => Schema::TYPE_STRING . ' NOT NULL UNSIGNED', 方法。请注意,您需要更新框架。感谢 leitasat 获取信息。

答案 1 :(得分:3)

以防万一:他们did it

现在您可以将->unsigned()添加到您的定义中。