Come funzionano le migrazioni?
Questa pagina è stata tradotta da PageTurner AI (beta). Non ufficialmente approvata dal progetto. Hai trovato un errore? Segnala problema →
Quando passi in produzione, dovrai sincronizzare le modifiche dei modelli nel database.
In genere, non è sicuro usare synchronize: true per la sincronizzazione dello schema in produzione quando
il database contiene già dati. È qui che entrano in gioco le migrazioni.
Una migrazione è semplicemente un file contenente query SQL per aggiornare lo schema del database e applicare modifiche a un database esistente.
Supponiamo tu abbia già un database e un'entità Post:
import { Entity, Column, PrimaryGeneratedColumn } from "typeorm"
@Entity()
export class Post {
@PrimaryGeneratedColumn()
id: number
@Column()
title: string
@Column()
text: string
}
E che la tua entità abbia funzionato in produzione per mesi senza modifiche. Hai migliaia di post nel tuo database.
Ora devi rilasciare una nuova versione e rinominare title in name.
Cosa faresti?
Dovresti creare una nuova migrazione con questa query SQL (dialetto PostgreSQL):
ALTER TABLE "post" RENAME COLUMN "title" TO "name";
Dopo aver eseguito questa query SQL, lo schema del tuo database sarà pronto per la nuova codebase. TypeORM offre un ambiente dove scrivere tali query SQL ed eseguirle quando necessario. Questo ambiente si chiama "migrations".