sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo establecer un campo de base de datos anulable en NULL con typeorm?

Después de una buena noche de descanso logré solucionar mi problema.

Typeorm establece el tipo de los campos de la base de datos en función de la escritura que le da a las variables para sus entidades en TypeScript. Typeorm convierte el siguiente código en un varchar campo en mi base de datos postgres porque le di una cadena como un tipo en mecanografiado.

@Column({
    unique: true,
    nullable: true,
})
resetPasswordToken!: string;

Aquí es también donde radica mi problema. Typeorm toma la escritura de un campo e intenta crear ese campo de base de datos en función de la escritura que lee. Si bien el código a continuación es correcto, el mecanografiado básicamente encapsula ambos tipos en un solo objeto y ese objeto es lo que está leyendo Typeorm causando el error que obtuve.

resetPasswordToken!: string | null;

Para solucionar mi problema, tuve que especificar el tipo de campo de la base de datos explícitamente así:

@Column({
    type: 'text',
    unique: true,
    nullable: true,
})
resetPasswordToken!: string;