PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como definir um campo de banco de dados anulável para NULL com typeorm?


Depois de uma boa noite de descanso consegui resolver o meu problema.

O Typeorm define o tipo dos campos do banco de dados com base na digitação que você fornece às variáveis ​​para suas entidades no typescript. Typeorm converte o código abaixo para um varchar campo no meu banco de dados postgres porque eu dei uma string como um tipo em texto datilografado.
@Column({
    unique: true,
    nullable: true,
})
resetPasswordToken!: string;

É também aqui que reside o meu problema. O Typeorm pega a digitação de um campo e tenta criar esse campo de banco de dados com base na digitação que ele lê. Embora o código abaixo esteja correto, o typescript basicamente encapsula os dois tipos em um único objeto e esse objeto é o que está sendo lido pelo Typeorm causando o erro que recebi.
resetPasswordToken!: string | null;

Para corrigir meu problema, tive que especificar o tipo de campo do banco de dados explicitamente assim:
@Column({
    type: 'text',
    unique: true,
    nullable: true,
})
resetPasswordToken!: string;