PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment définir un champ de base de données nullable sur NULL avec typeorm ?

Après une bonne nuit de repos, j'ai réussi à résoudre mon problème.

Typeorm définit le type des champs de la base de données en fonction de la saisie que vous donnez aux variables de vos entités en dactylographié. Typeorm convertit le code ci-dessous en un varchar champ dans ma base de données postgres parce que je lui ai donné une chaîne comme un type dans le tapuscrit.

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

C'est aussi là que réside mon problème. Typeorm prend le typage d'un champ et essaie de créer ce champ de base de données en fonction du typage qu'il lit. Bien que le code ci-dessous soit correct, le tapuscrit encapsule essentiellement les deux types dans un seul objet et cet objet est ce qui est lu par Typeorm provoquant l'erreur que j'ai eue.

resetPasswordToken!: string | null;

Pour résoudre mon problème, j'ai dû spécifier explicitement le type de champ de la base de données comme ceci :

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