【问题标题】:Phinx migrations - explicit length of integer columnPhinx 迁移 - 整数列的显式长度
【发布时间】:2016-09-13 18:30:39
【问题描述】:

您能否告诉我是否可以通过 Phinx 迁移addColumn() 方法设置整数列的显式长度?

文档使用MysqlAdapter::INT_REGULAR 的限制选项,如['limit' => MysqlAdapter::INT_SMALL, 'signed' => false],但它会自动设置列的长度,例如int(10).

但是如果我需要int(11),例如外键列,我该怎么办?

谢谢。

【问题讨论】:

    标签: php mysql database-migration phinx


    【解决方案1】:

    据我了解,limit option MysqlAdapter::INT_REGULAR 类似于 Phinx 中的预定义类型。但您也可以使用自己的 limit 变量。

    这是一个例子:

    // using Phinx 0.5.4
    public function change() {
      $table = $this->table('papers');
      $table->addColumn('user_id', 'integer', ['limit' => 2])
            ->addColumn('book_id', 'integer') // by default will be int(11)
            ->addColumn('bank_id', 'integer', ['limit' => 32])
            ->create();
    

    }

    MySQL 描述结果:

    +---------+---------+------+-----+---------+----------------+
    | Field   | Type    | Null | Key | Default | Extra          |
    +---------+---------+------+-----+---------+----------------+
    | id      | int(11) | NO   | PRI | NULL    | auto_increment |
    | user_id | int(2)  | NO   |     | NULL    |                |
    | book_id | int(11) | NO   |     | NULL    |                |
    | bank_id | int(32) | NO   |     | NULL    |                |
    +---------+---------+------+-----+---------+----------------+
    

    如需了解更多信息,请查看getSqlType()source codegetPhinxType()source code 函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-14
      • 1970-01-01
      • 1970-01-01
      • 2018-10-20
      • 2012-05-04
      • 1970-01-01
      • 1970-01-01
      • 2022-10-25
      相关资源
      最近更新 更多