它与
columnDefinition="ENUM('bar', 'buz')"
:
/**
* Foo
*
* @ORM\Table(name="foos", ...)
* @ORM\Entity
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="type", type="string", columnDefinition="ENUM('bar', 'buz')")
* @ORM\DiscriminatorMap({
* "bar" = "Bar",
* "buz" = "Buz"
* })
*/
abstract class Foo
{
...
}
不幸的是,它会引起令人讨厌的副作用
here
):理论的迁移机制似乎可以处理
ENUM
不正确。这个
doctrine:migrations:diff
命令创建如下迁移:
final class Version20180619205625 extends AbstractMigration
{
public function up(Schema $schema) : void
{
$this->addSql('ALTER TABLE foos CHANGE type `type` ENUM(\'bar\', \'buz\')');
}
public function down(Schema $schema) : void
{
$this->addSql('ALTER TABLE tasks CHANGE `type` type VARCHAR(255) DEFAULT NULL COLLATE utf8mb4_unicode_ci');
}
}
我执行它
type
列变为
枚举
. 但是一个新的
教义:迁徙:差异
再次创建具有相同内容的迁移。。。意思,教条“思”,栏目还是
VARCHAR
.