Vai al contenuto principale

Creazione manuale

Traduzione Beta Non Ufficiale

Questa pagina è stata tradotta da PageTurner AI (beta). Non ufficialmente approvata dal progetto. Hai trovato un errore? Segnala problema →

Puoi creare una nuova migrazione usando la CLI specificando nome e posizione della migrazione:

npx typeorm migration:create <path/to/migrations>/<migration-name>

Per esempio:

npx typeorm migration:create src/db/migrations/post-refactoring

Dopo aver eseguito il comando, vedrai un nuovo file generato nella directory src/db/migrations chiamato {TIMESTAMP}-post-refactoring.ts dove {TIMESTAMP} è il timestamp corrente della generazione della migrazione.

Ora puoi aprire il file e aggiungere le tue query SQL per la migrazione. Dovresti vedere il seguente contenuto:

import { MigrationInterface, QueryRunner } from "typeorm"

export class PostRefactoringTIMESTAMP implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {}

async down(queryRunner: QueryRunner): Promise<void> {}
}

Ci sono due metodi da implementare con il codice di migrazione: up e down. up deve contenere il codice per eseguire la migrazione. down deve annullare le modifiche apportate da up. Il metodo down serve per annullare l'ultima migrazione.

All'interno sia di up che di down hai un oggetto QueryRunner. Tutte le operazioni sul database vengono eseguite tramite questo oggetto. Maggiori dettagli sul query runner.

Vediamo come appare la migrazione con le nostre modifiche a Post:

import { MigrationInterface, QueryRunner } from "typeorm"

export class PostRefactoringTIMESTAMP implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "post" RENAME COLUMN "title" TO "name"`,
)
}

async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "post" RENAME COLUMN "name" TO "title"`,
) // reverts things made in "up" method
}
}