Doctorine/Dbal - 更新 table 迁移,在整数(不是增量)上添加不需要的 "Auto Increment"
Doctorine/Dbal - Update table migration adding unwanted "Auto Increment" on integer (not increments)
我正在使用 Laravel 6.6.0 和 Doctrine/Dbal 2.10.
我需要更新迁移,并已按照 docs 中的信息进行操作。
我有一个小的无符号非自动递增整数,我需要将其更改为整数。
我实际上希望它是 mediumint
,但我从 Laravel 文档中了解到这不受支持。
Only the following column types can be "changed": bigInteger, binary, boolean, date, dateTime, dateTimeTz, decimal, integer, json, longText, mediumText, smallInteger, string, text, time, unsignedBigInteger, unsignedInteger and unsignedSmallInteger.
My initial migration is the following:
...
$table->bigIncrements('id');
$table->smallInteger('membership_code')->unsigned();
$table->char('name')->nullable();
...
并且安装了 dbal 包后,我正在尝试以下迁移来更新 membership_code
列:
$table->integer('membership_code', 5)->unsigned()->change();
但是当我 运行 迁移命令时,我得到以下信息:
Syntax error or access violation: 1075 Incorrect table definition; there can be only one auto column and it must be defined as a key (SQL: ALTER TABLE member_centres CHANGE membership_code membership_code INT UNSIGNED AUTO_INCREMENT NOT NULL
我不明白为什么要将 AUTO_INCREMENT
添加到迁移中?
我没有它作为 increments
类型,为什么要添加它?
integer
的第二个参数不是大小,它是一个布尔值,表示它是否应该是一个自动增量字段。
public function integer($column, $autoIncrement = false, $unsigned = false)
我正在使用 Laravel 6.6.0 和 Doctrine/Dbal 2.10.
我需要更新迁移,并已按照 docs 中的信息进行操作。
我有一个小的无符号非自动递增整数,我需要将其更改为整数。
我实际上希望它是 mediumint
,但我从 Laravel 文档中了解到这不受支持。
Only the following column types can be "changed": bigInteger, binary, boolean, date, dateTime, dateTimeTz, decimal, integer, json, longText, mediumText, smallInteger, string, text, time, unsignedBigInteger, unsignedInteger and unsignedSmallInteger. My initial migration is the following:
...
$table->bigIncrements('id');
$table->smallInteger('membership_code')->unsigned();
$table->char('name')->nullable();
...
并且安装了 dbal 包后,我正在尝试以下迁移来更新 membership_code
列:
$table->integer('membership_code', 5)->unsigned()->change();
但是当我 运行 迁移命令时,我得到以下信息:
Syntax error or access violation: 1075 Incorrect table definition; there can be only one auto column and it must be defined as a key (SQL: ALTER TABLE member_centres CHANGE membership_code membership_code INT UNSIGNED AUTO_INCREMENT NOT NULL
我不明白为什么要将 AUTO_INCREMENT
添加到迁移中?
我没有它作为 increments
类型,为什么要添加它?
integer
的第二个参数不是大小,它是一个布尔值,表示它是否应该是一个自动增量字段。
public function integer($column, $autoIncrement = false, $unsigned = false)