Aller au contenu principal

36-2 Création de l'entité Utilisateur

  1. Sous le dossier src/utilisateurs/entities, créez une classe utilisateur.entity.ts avec le décorateur @Entity pour créer la table associée et qui hérite de BaseEntity.
    src/utilisateurs/entities/utilisateur.entity.ts
    import { BaseEntity, Entity } from 'typeorm';

    @Entity('utilisateurs')
    export class Utilisateur extends BaseEntity {

    }
  2. Cette entité aura des propriétés id, prenom, nom, courriel, nomUtilisateur, password (à noter que je préfère utiliser la terminologie en anglais pour password).
    src/utilisateurs/entities/utilisateur.entity.ts
    @Entity('utilisateurs')
    export class Utilisateur extends BaseEntity {
    @PrimaryGeneratedColumn()
    id: number;

    @Column({ type: 'varchar', length: 255 })
    prenom: string;

    @Column({ type: 'varchar', length: 255 })
    nom: string;

    @Column({ type: 'varchar', length: 255 })
    courriel: string;

    @Column({ type: 'varchar', length: 32 })
    nomUtilisateur: string;

    @Column({ type: 'varchar', length: 255 })
    password: string;

    @CreateDateColumn()
    date_creation: string;

    @UpdateDateColumn()
    date_modification: string;
    }

Enregistrement de l'entité auprès de TypeORM

Il nous faut ajouter l'entité à TypeORM pour que la table soit créée et gérée automatiquement par l'ORM:

src/app.module.ts
@Module({
imports: [
//...

TypeOrmModule.forRoot({
type: 'postgres',
host: process.env.DATABASE_HOST,
port: +process.env.DATABASE_PORT,
username: process.env.DATABASE_USER,
password: process.env.DATABASE_PASSWORD,
database: process.env.DATABASE_NAME,
entities: [Projet, Issue, Utilisateur],
//...

Ce qui devrait donner dans la console d'exécution du serveur la requête SQL suivante:

CREATE TABLE "utilisateurs" ("id" SERIAL NOT NULL, "prenom" character varying(255) NOT NULL, "nom" character varying(255) NOT NULL, "courriel" character varying(255) NOT NULL, "nomUtilisateur" character varying(255) NOT NULL, "password" character varying(255) NOT NULL, "date_creation" TIMESTAMP NOT NULL DEFAULT now(), "date_modification" TIMESTAMP NOT NULL DEFAULT now(), CONSTRAINT "PK_d3c39b551c51a0bdc76e07b9197" PRIMARY KEY ("id"))