使用YIi2更改注释时,更改PGSQL的列模式不起作用

时间:2016-08-04 11:50:03

标签: php mysql postgresql yii2 database-migration

$string = 'User name';
 $default = null; 

Simply from my traits , 
 self::integer()->comment($string)->defaultValue($default)

其中$ string是'word',$ default现在是'NULL'。  我从 / yiisoft / yii2 / db / 扩展了SchemaBuilderTrait。

当我,

echo self::integer()->comment($string)->defaultValue($default) ;

这让我感觉像是Alter Table User

Alter column "userid" TYPE Integer NULL.

但它应该返回结果我,

ALTER TABLE "user" ALTER COLUMN "userid" TYPE integer COMMENT "user name";

它可以在窗口 / linux 中使用PHP 5.5.9 ,但不能与 5.6.21 一起使用甚至它适用于PHP 5.6.21中的MYSQL,但不适用于相同PHP版本的PGSQL。

//我的自定义特征代码:

<?php
namespace common\models;

use Yii;
use yii\db\SchemaBuilderTrait;

trait AbstractSchemaBuilderTrait 
{
    use SchemaBuilderTrait; 
 public function many2one($table,$column,$rel_table,$rel_column,$type,$size=null,$string=null,$default=null,$act_delete=null,$act_update=null)
    {
        if ($type == 'integer') {
            return self::integer()->comment($string)->defaultValue($default)."  ,ADD CONSTRAINT fk_$table"."_$column FOREIGN KEY($column)  REFERENCES $rel_table($rel_column)";
        }
        return self::$type($size)->comment($string)->defaultValue($default)."  ,ADD CONSTRAINT fk_$table"."_$column FOREIGN KEY($column)  REFERENCES $rel_table($rel_column)";
    }
}
?>

任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您可以使用

$this->addCommentOnColumn('{{%tablename}}', 'columname', 'My New Comment');

这只是available as of Yii 2.0.8