【问题标题】:Yii migration addColumn - add explaining commentYii 迁移 addColumn - 添加解释性评论
【发布时间】:2017-01-02 15:25:38
【问题描述】:

我对 Yii 中的迁移没有任何问题。 但有一件事让我很困扰。

我无法为其添加评论。

    public function safeUp()
    {
       $this->addColumn('product_supplier', 'type_search', "'INT(1) DEFAULT \'0\'' COMMENT  'field hohohoho'  ");
    }

在 phpmyadmin 中,我曾经以这种方式添加 cmets:

此功能对支持项目有很大帮助。

我希望能够在迁移中进行 cmets。

我发现的都是this post:

但我需要在 addColumn 函数中添加注释。因为我已经有桌子了。重新创建它不是一种选择,因为我会丢失其中的所有数据。

也许有人能猜出正确的语法?

谢谢。

【问题讨论】:

  • 天哪,我宁愿得到小费并被否决,也不愿拥有没有 cmets 的字段
  • 我有类似的问题。我通过执行查询解决了它,它只是添加了评论。不知道如何在 mysql 中执行此操作(我在 postgres 上工作),但请查看 cornempire.net/2010/04/15/add-comments-to-column-mysql
  • 提示:邮政编码而不是代码图像。通过这种方式可以搜索并复制到测试解决方案。
  • 为什么这里有单引号:'INT(1) DEFAULT \'0\' '?
  • 我从这里举了一个例子 - stackoverflow.com/questions/6693134/database-migration-in-yii 。上面提供了截图代码的链接。

标签: php mysql yii migration


【解决方案1】:

yii2格式

  • addCommentOnColumn($table, $column, $comment)
  • dropCommentFromColumn($table, $column)
  • addCommentOnTable($table, $comment)
  • dropCommentFromTable($table)

示例: 在迁移文件中

$this->addCommentOnColumn('user','role_id','Relation table of role');

【讨论】:

  • 只是一个语法糖
  • 这应该是接受的答案恕我直言。
【解决方案2】:

好的,这很简单:

        $this->createTable('order',[

       'user_margin_user_id' =>  'INT(32) DEFAULT \'0\'  COMMENT "EXPLAINING COMMENT"',    

    ], 'ENGINE=InnoDB CHARSET=utf8');

【讨论】:

  • 您应该考虑改为接受Yasar Arafath's answer。因为当你像这里那样在类型信息中填入注释时,Yii2 基本上放弃了理解类型的尝试,只是将其逐字复制到 SQL 中,这意味着它可能不适用于所有数据库类型。 Yasser 的回答是使用特殊的方法addCommentOnColumn,Yii2 确实可以理解,因此可以在所有支持的数据库上工作。
猜你喜欢
  • 2012-09-12
  • 2019-02-23
  • 2012-07-29
  • 2017-07-29
  • 2011-12-05
  • 1970-01-01
  • 2015-03-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多