Opzioni del Data Source
Questa pagina è stata tradotta da PageTurner AI (beta). Non ufficialmente approvata dal progetto. Hai trovato un errore? Segnala problema →
Cos'è DataSourceOptions?
DataSourceOptions è la configurazione del data source passata durante la creazione di una nuova istanza DataSource.
Diversi RDBMS hanno opzioni specifiche proprie.
Opzioni comuni del data source
-
type- Tipo di RDBMS. È necessario specificare quale motore di database si utilizza. Valori possibili: "mysql", "postgres", "cockroachdb", "sap", "spanner", "mariadb", "sqlite", "cordova", "react-native", "nativescript", "sqljs", "oracle", "mssql", "mongodb", "aurora-mysql", "aurora-postgres", "expo", "better-sqlite3", "capacitor". Questa opzione è obbligatoria. -
extra- Opzioni extra da passare al driver sottostante. Usala se vuoi passare impostazioni aggiuntive al driver del database sottostante. -
entities- Entità o Entity Schema da caricare e utilizzare per questa sorgente dati. Accetta classi di entità, classi di schema di entità e percorsi di directory da cui caricare. Le directory supportano pattern glob. Esempio:entities: [Post, Category, "entities/*.js", "modules/**/entities/*.js"]. Scopri di più sulle Entità. Scopri di più sugli Entity Schemas. -
subscribers- Subscriber da caricare e utilizzare per questa sorgente dati. Accetta sia classi di entità che directory da cui caricare. Le directory supportano pattern glob. Esempio:subscribers: [PostSubscriber, AppSubscriber, "subscribers/*.js", "modules/**/subscribers/*.js"]. Scopri di più sui Subscriber. -
logging- Indica se il logging è abilitato. Se impostato atrue, vengono abilitati il logging delle query e degli errori. Puoi anche specificare diversi tipi di logging da abilitare, ad esempio["query", "error", "schema"]. Scopri di più sul Logging. -
logger- Logger da utilizzare per il logging. Valori possibili: "advanced-console", "formatted-console", "simple-console" e "file". Il valore predefinito è "advanced-console". Puoi anche specificare una classe logger che implementi l'interfacciaLogger. Scopri di più sul Logging. -
maxQueryExecutionTime- Se il tempo di esecuzione di una query supera questo tempo massimo (in millisecondi), il logger registrerà la query. -
poolSize- Configura il numero massimo di connessioni attive nel pool. -
namingStrategy- Strategia di denominazione da utilizzare per nominare tabelle e colonne nel database. -
entityPrefix- Aggiunge il prefisso specificato a tutte le tabelle (o collezioni) di questa sorgente dati. -
entitySkipConstructor- Indica se TypeORM deve saltare i costruttori durante la deserializzazione delle entità dal database. Nota che quando non viene chiamato il costruttore, sia le proprietà private che quelle predefinite non funzioneranno come previsto. -
dropSchema- Elimina lo schema ogni volta che la sorgente dati viene inizializzata. Fai attenzione con questa opzione e non usarla in produzione - altrimenti perderai tutti i dati di produzione. Questa opzione è utile durante il debug e lo sviluppo. -
synchronize- Indica se lo schema del database deve essere creato automaticamente ad ogni avvio dell'applicazione. Fai attenzione con questa opzione e non usarla in produzione - altrimenti potresti perdere i dati di produzione. Questa opzione è utile durante il debug e lo sviluppo. In alternativa, puoi usare la CLI ed eseguire il comando schema:sync. Nota che per i database MongoDB non crea uno schema, perché MongoDB è schemaless. Invece, esegue la sincronizzazione solo creando gli indici. -
migrations- Migration da caricare e utilizzare per questa sorgente dati -
migrationsRun- Indica se le migration devono essere eseguite automaticamente ad ogni avvio dell'applicazione. -
migrationsTableName- Nome della tabella nel database che conterrà le informazioni sulle migration eseguite. -
migrationsTransactionMode- Controlla la modalità di transazione durante l'esecuzione delle migrations. -
metadataTableName- Nome della tabella nel database che conterrà i metadati delle tabelle. Di default, questa tabella è chiamata "typeorm_metadata". -
cache- Abilita la cache dei risultati delle entità. Puoi anche configurare qui il tipo di cache e altre opzioni. Leggi di più sulla cache qui. -
isolateWhereStatements- Abilita l'isolamento delle clausole WHERE, racchiudendo automaticamente ogni condizione tra parentesi. Esempio:.where("user.firstName = :search OR user.lastName = :search")diventaWHERE (user.firstName = ? OR user.lastName = ?)invece diWHERE user.firstName = ? OR user.lastName = ?. -
invalidWhereValuesBehavior- Controlla come i valori null e undefined vengono gestiti nelle condizioni WHERE in tutte le operazioni di TypeORM (operazioni find, query builder, metodi del repository).- Opzioni per
null:'ignore'(default) - ignora le proprietà null'sql-null'- trasforma null in SQL NULL'throw'- genera un errore
- Opzioni per
undefined:'ignore'(default) - ignora le proprietà undefined'throw'- genera un errore
Esempio:
invalidWhereValuesBehavior: { null: 'sql-null', undefined: 'throw' }.Approfondisci la Gestione di Null e Undefined.
- Opzioni per
Esempio di opzioni di Data Source
Ecco un piccolo esempio di opzioni per una sorgente dati mysql:
{
host: "localhost",
port: 3306,
username: "test",
password: "test",
database: "test",
logging: true,
synchronize: true,
entities: [__dirname + "/entities/**/*{.js,.ts}"],
subscribers: [__dirname + "/subscribers/**/*{.js,.ts}"],
entitySchemas: [__dirname + "/schemas/**/*.json"],
migrations: [__dirname + "/migrations/**/*{.js,.ts}"]
}