Unable to update column attributes in Laravel 5.1 using CHAR data type

Here is the code in my migration:

public function up()
{
    Schema::table('companies', function (Blueprint $table) {
        $table->char('default_unit_for_weight', 2)->default('kg')->after('notes')->change();
        $table->char('default_currency', 3)->default('EUR')->after('default_unit_for_weight')->change();
    });
}

When I start the migration, I get the following error:

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

When I checked the class \Doctrine\DBAL\Types\Type, I found the following code:

const TARRAY = 'array';
const SIMPLE_ARRAY = 'simple_array';
const JSON_ARRAY = 'json_array';
const BIGINT = 'bigint';
const BOOLEAN = 'boolean';
const DATETIME = 'datetime';
const DATETIMETZ = 'datetimetz';
const DATE = 'date';
const TIME = 'time';
const DECIMAL = 'decimal';
const INTEGER = 'integer';
const OBJECT = 'object';
const SMALLINT = 'smallint';
const STRING = 'string';
const TEXT = 'text';
const BINARY = 'binary';
const BLOB = 'blob';
const FLOAT = 'float';
const GUID = 'guid';

This means that Doctrine does not support the CHAR data type. Is it possible to change column attributes in Laravel 5.1 using CHAR datatype?

+4
source share
1 answer

You can use raw queries to transfer (DB :: statement ('query')), but I'm not sure that Eloquent will not panic, but should not, but

0
source

Source: https://habr.com/ru/post/1598193/


All Articles