In a project we want to use ENUM type properties in some models. Adding them worked fine:
/** * @var string * @ORM\Column(type="string", columnDefinition="ENUM('database', 'email', 'note')") */ protected $type;
The migration generated also looks fine:
$this->addSql("CREATE TABLE my_package_domain_model_activity (persistence_object_identifier VARCHAR(40) NOT NULL, [some other properties], action ENUM('add', 'update'), INDEX IDX_D7144FA081398E09 (customer), PRIMARY KEY(persistence_object_identifier)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
But the problem is that after creating and executing this migration I get this error:
Unknown database type enum requested, Doctrine\DBAL\Platforms\MySqlPlatform may not support it. Type: Doctrine\DBAL\DBALException File: Packages/Libraries/doctrine/dbal/lib/Doctrine/DBAL/Platforms/AbstractPlatfo rm.php Line: 423
I first thought that this was because I added more ENUM types, but then I found out that the problems are the ENUM type fields from the migration above.
So in short: It was possible to define an enum property, create a migration for it and create this field in the DB using migrationexecute. But from that point this field is considered unsupported.
I found a related discussion in https://forum.typo3.org/index.php/t/210173/ but have the same issues.
Does anyone have experience with ENUM properties? Should we rather not use those at all or is there a solution?
(Tested in Flow 3.1 and also after updating to 3.2.)