While running php artisan migrate, I got the following error
[Doctrine\DBAL\DBALException]
Unknown database type enum requested, Doctrine\DBAL\Platforms\MySqlPlatform may not support it.
How to resolve this issue.
Code:
public function up() { Schema::table('blogs', function (Blueprint $table) { $table->string('wordpress_id')->nullable(); $table->string('google_blog_id')->nullable()->change(); }); }
It is a known issue as stated in Laravel 5.1 documentation.
Note: Renaming columns in a table with a
enum
column is not currently supported.
It happens when you have a enum
column in your database table. Whether you are trying to rename another column, or change another column to nullable
, this bug will appear. It's an issue with Doctrine\DBAL
.
An easy fix for this is to just add this constructor method in your database migration file.
public function __construct() { DB::getDoctrineSchemaManager()->getDatabasePlatform()->registerDoctrineTypeMapping('enum', 'string'); }
This will map all the ENUM
columns to VARCHAR()
, and the column will accept any string.
This worked for me on Laravel 5.1 and Laravel 5.3. I hope this bug can be fixed soon.
Credit to @Gmatkowski's answer at https://stackoverflow.com/a/32860409/1193201
The official Laravel 5.1 documentation states:
Note: Renaming columns in a table with a enum column is not currently supported.
It doesn't matter if you're trying to change another column, if the table contains a enum
anywhere it won't work. It's a Doctrine DBAL issue.
As a workaround you could either drop the column and add a new one (column data will be lost):
public function up() { Schema::table('users', function(Blueprint $table) { $table->dropColumn('name'); }); Schema::table('users', function(Blueprint $table) { $table->text('username'); }); }
or use a DB statement:
public function up() { DB::statement('ALTER TABLE projects CHANGE slug url VARCHAR(200)'); } public function down() { DB::statement('ALTER TABLE projects CHANGE url slug VARCHAR(200)'); }
Source: https://github.com/laravel/framework/issues/1186
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With