Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Migration - Cannot Change Double Data Type Value

Tags:

laravel

I have an existing table created with this migration code:

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

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

});

Then I have created another migration file to adjust the value range of my mycolumn field with the migration file below.

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

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

});

However I am getting an error:

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.

What am I missing?

like image 639
kapitan Avatar asked Nov 28 '22 19:11

kapitan


1 Answers

the double cannot be changed the way you do for other types, you can fix it using Doctrine\DBAL\Type

You can fix it in this way:

use Doctrine\DBAL\Types\FloatType;
use Doctrine\DBAL\Types\Type;

public function up() {
    if (!Type::hasType('double')) {
        Type::addType('double', FloatType::class);
    }
    Schema::table('mytable', function($table) {         
        $table->double('mycolumn',15,2)->default(0)->change();
        .....
    });
}
like image 60
Sethu Avatar answered Dec 06 '22 00:12

Sethu