Skip to content

Default enum null value causes a bug #5371

@OrkhanAlikhanov

Description

@OrkhanAlikhanov

Issue type:

[x] bug report

Database system/driver:

[x] mysql / mariadb

TypeORM version:

[x] latest
[x] @next

Steps to reproduce or a small repository showing the problem:
Create an enum column with default value null

enum MyEnum {
  valueA = 'valueA',
  valueB = 'valueB',
}

@Entity()
export class Entity extends BaseEntity {
  @Column({
    type: 'enum',
    enum: MyEnum,
    nullable: true,
    default: null,
  })
  field?: MyEnum;
}

result

{
  message: "Invalid default value for 'field'",
  code: 'ER_INVALID_DEFAULT',
  errno: 1067,
  sqlState: '42000',
  sqlMessage: "Invalid default value for 'field'",
  name: 'QueryFailedError',
  query: "ALTER TABLE `entity` CHANGE `field` `field` enum ('valueA', 'valueB') NULL DEFAULT 'null'",
  parameters: []
}

It should've generated query: "ALTER TABLE ``entity`` CHANGE ``field`` ``field`` enum ('valueA', 'valueB') NULL DEFAULT null",

Adding && defaultValue !== null seems to work

if ((columnMetadata.type === "enum" || columnMetadata.type === "simple-enum") && defaultValue !== undefined) {

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions