TypeORM Migration

NestJS 🟡 Mid

Definition

Fichier versionne qui decrit les modifications de schema de base de donnees (up/down). Permet de gerer l'evolution du schema de facon reproductible.

Analogie

Comme un historique Git mais pour la structure de ta base de donnees.

Exemple de code

export class AddUserAge1234567890 implements MigrationInterface {
  async up(qr: QueryRunner) {
    await qr.addColumn('user',
      new TableColumn({ name: 'age', type: 'int', isNullable: true }));
  }
  async down(qr: QueryRunner) {
    await qr.dropColumn('user', 'age');
  }
}

Cas d'usage

Deployer des changements de schema en production de maniere securisee et reversible.

Anti-pattern

Utiliser synchronize: true en production au lieu de migrations versionees.
#database#interview