Миграция финкса — явная длина целочисленного столбца

Подскажите пожалуйста, если возможно установить явную длину целочисленного столбца через миграцию Phinx addColumn() метод?

Документация использует предельную опцию с MysqlAdapter::INT_REGULAR лайк ['limit' => MysqlAdapter::INT_SMALL, 'signed' => false] но он автоматически устанавливает длину столбца, например int(10),

Но что мне делать, если мне нужно int(11) например, для столбца внешнего ключа?

Спасибо.

3

Решение

как я понял опция ограничения 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() а также исходный код из getPhinxType() функции.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]