Миграция - невозможно изменить значение двойного типа данных - PullRequest
0 голосов
/ 03 июля 2019

У меня есть существующая таблица, созданная с этим кодом миграции:

Schema::create('mytable', function (Blueprint $table) {

 $table->increments('id');
 $table->double('mycolumn',8,2)->unsigned()->default(0);
 $table->timestamps();

});

Затем я создал другой файл миграции для настройки диапазона значений моего поля mycolumn с помощью файла миграции ниже.

Schema::table('mytable', function (Blueprint $table) {

 $table->double('mycolumn',15,2)->unsigned()->default(0)->change();

});

Однако я получаю сообщение об ошибке:

In DBALException.php line 283:

  Unknown column type "double" requested. Any Doctrine type that you use has to be registered with \Doctrine\DBAL\Types\Type::addType(). You can get a li
  st of all the known types with \Doctrine\DBAL\Types\Type::getTypesMap(). If this error occurs during database introspection then you might have forgott
  en to register all database types for a Doctrine Type. Use AbstractPlatform#registerDoctrineTypeMapping() or have your custom types implement Type#getM
  appedDatabaseTypes(). If the type name is empty you might have a problem with the cache or forgot some mapping information.

Чего мне не хватает?

1 Ответ

2 голосов
/ 03 июля 2019

Вы пропустили это из документации

"Можно изменить" только следующие типы столбцов: bigInteger, двоичный, логический, дата, dateTime, dateTimeTz, десятичное, целое, json, longText, mediumText, smallInteger, строка, текст, время, unsignedBigInteger, unsignedInteger и unsignedSmallInteger .

Так что double нельзя изменить.

Я не пробовал, но вы можете использовать запрос RAW MySQL, например, сначала попробуйте локально, конечно:

DB::statement('alter table mytable modify mycolumn DOUBLE(15,2) DEFAULT 0');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...