Vai al contenuto principale

API di Query Runner

Traduzione Beta Non Ufficiale

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

Per utilizzare un'API per modificare lo schema di un database, puoi usare QueryRunner.

import {
MigrationInterface,
QueryRunner,
Table,
TableIndex,
TableColumn,
TableForeignKey,
} from "typeorm"

export class QuestionRefactoringTIMESTAMP implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.createTable(
new Table({
name: "question",
columns: [
{
name: "id",
type: "int",
isPrimary: true,
},
{
name: "name",
type: "varchar",
},
],
}),
true,
)

await queryRunner.createIndex(
"question",
new TableIndex({
name: "IDX_QUESTION_NAME",
columnNames: ["name"],
}),
)

await queryRunner.createTable(
new Table({
name: "answer",
columns: [
{
name: "id",
type: "int",
isPrimary: true,
},
{
name: "name",
type: "varchar",
},
{
name: "created_at",
type: "timestamp",
default: "now()",
},
],
}),
true,
)

await queryRunner.addColumn(
"answer",
new TableColumn({
name: "questionId",
type: "int",
}),
)

await queryRunner.createForeignKey(
"answer",
new TableForeignKey({
columnNames: ["questionId"],
referencedColumnNames: ["id"],
referencedTableName: "question",
onDelete: "CASCADE",
}),
)
}

async down(queryRunner: QueryRunner): Promise<void> {
const table = await queryRunner.getTable("answer")
const foreignKey = table.foreignKeys.find(
(fk) => fk.columnNames.indexOf("questionId") !== -1,
)
await queryRunner.dropForeignKey("answer", foreignKey)
await queryRunner.dropColumn("answer", "questionId")
await queryRunner.dropTable("answer")
await queryRunner.dropIndex("question", "IDX_QUESTION_NAME")
await queryRunner.dropTable("question")
}
}

title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

getDatabases(): Promise<string[]>

Restituisce tutti i nomi di database disponibili, inclusi i database di sistema.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

getSchemas(database?: string): Promise<string[]>
  • database - Se viene specificato il parametro database, restituisce gli schemi di quel database

Restituisce tutti i nomi di schema disponibili, inclusi gli schemi di sistema. Utile solo per SQLServer e Postgres.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

getTable(tableName: string): Promise<Table|undefined>
  • tableName - Nome della tabella da caricare

Carica una tabella dal database in base a un nome specificato.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

getTables(tableNames: string[]): Promise<Table[]>
  • tableNames - Nomi delle tabelle da caricare

Carica le tabelle dal database in base ai nomi specificati.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

hasDatabase(database: string): Promise<boolean>
  • database - Nome del database da verificare

Verifica se esiste un database con il nome specificato.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

hasSchema(schema: string): Promise<boolean>
  • schema - Nome dello schema da verificare

Verifica se esiste uno schema con il nome specificato. Utilizzato solo per SqlServer e Postgres.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

hasTable(table: Table|string): Promise<boolean>
  • table - Oggetto Table o nome

Verifica se la tabella esiste.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

hasColumn(table: Table|string, columnName: string): Promise<boolean>
  • table - Oggetto Table o nome

  • columnName - Nome della colonna da verificare

Verifica se la colonna esiste nella tabella.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

createDatabase(database: string, ifNotExists?: boolean): Promise<void>
  • database - Nome del database

  • ifNotExists - se impostato su true, ignora silenziosamente se il database esiste già; altrimenti genera un errore (predefinito)

Crea un nuovo database.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

dropDatabase(database: string, ifExists?: boolean): Promise<void>
  • database - Nome del database

  • ifExists - se impostato su true, ignora silenziosamente se il database non esiste; altrimenti genera un errore (predefinito)

Elimina il database.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

createSchema(schemaPath: string, ifNotExists?: boolean): Promise<void>
  • schemaPath - Nome dello schema. Per SqlServer accetta percorsi di schema (es. 'dbName.schemaName'). Se passato un percorso, creerà lo schema nel database specificato

  • ifNotExists - se impostato su true, ignora silenziosamente se lo schema esiste già; altrimenti genera un errore (predefinito)

Crea un nuovo schema di tabella.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

dropSchema(schemaPath: string, ifExists?: boolean, isCascade?: boolean): Promise<void>
  • schemaPath - Nome dello schema. Per SqlServer accetta percorsi di schema (es. 'dbName.schemaName'). Se passato un percorso, eliminerà lo schema nel database specificato

  • ifExists - se impostato su true, ignora silenziosamente se lo schema non esiste; altrimenti genera un errore (predefinito)

  • isCascade - Se true, elimina automaticamente gli oggetti (tabelle, funzioni, ecc.) contenuti nello schema. Utilizzato solo in Postgres

Elimina uno schema di tabella.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

createTable(table: Table, ifNotExists?: boolean, createForeignKeys?: boolean, createIndices?: boolean): Promise<void>
  • table - Oggetto Tabella

  • ifNotExists - se impostato su true, ignora silenziosamente se la tabella esiste già; altrimenti genera un errore (predefinito)

  • createForeignKeys - Indica se creare chiavi esterne durante la creazione della tabella. Predefinito true

  • createIndices - Indica se creare indici durante la creazione della tabella. Predefinito true

Crea una nuova tabella.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

dropTable(table: Table|string, ifExists?: boolean, dropForeignKeys?: boolean, dropIndices?: boolean): Promise<void>
  • table - Oggetto Tabella o nome della tabella da eliminare

  • ifExists - se impostato su true, ignora silenziosamente se la tabella non esiste; altrimenti genera un errore (predefinito)

  • dropForeignKeys - Indica se eliminare le chiavi esterne durante la cancellazione della tabella. Predefinito true

  • dropIndices - Indica se eliminare gli indici durante la cancellazione della tabella. Predefinito true

Elimina una tabella.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

createView(view: View, syncWithMetadata?: boolean, oldView?: View): Promise<void>
  • view - Oggetto View

  • syncWithMetadata - indica se sincronizzare la vista con i metadati (opzionale)

  • oldView - vecchio oggetto View da sostituire (opzionale)

Crea una nuova vista.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

dropView(view: View|string, ifExists?: boolean): Promise<void>
  • view - Oggetto View o nome della vista da eliminare

  • ifExists - se impostato su true, ignora silenziosamente se la vista non esiste; altrimenti genera un errore (predefinito)

Elimina una vista.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

renameTable(oldTableOrName: Table|string, newTableName: string): Promise<void>
  • oldTableOrName - Vecchio oggetto Tabella o nome da rinominare

  • newTableName - Nuovo nome della tabella

Rinomina una tabella.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

addColumn(table: Table|string, column: TableColumn): Promise<void>
  • table - Oggetto Table o nome

  • column - Nuova colonna

Aggiunge nuove colonne.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

addColumns(table: Table|string, columns: TableColumn[]): Promise<void>
  • table - Oggetto Table o nome

  • columns - Nuove colonne

Aggiunge nuove colonne.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

renameColumn(table: Table|string, oldColumnOrName: TableColumn|string, newColumnOrName: TableColumn|string): Promise<void>
  • table - Oggetto Table o nome

  • oldColumnOrName - Vecchia colonna. Accetta un oggetto TableColumn o il nome della colonna

  • newColumnOrName - Nuova colonna. Accetta un oggetto TableColumn o il nome della colonna

Rinomina una colonna.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

changeColumn(table: Table|string, oldColumn: TableColumn|string, newColumn: TableColumn): Promise<void>
  • table - Oggetto Table o nome

  • oldColumn - Vecchia colonna. Accetta un oggetto TableColumn o il nome della colonna

  • newColumn - Nuova colonna. Accetta un oggetto TableColumn

Modifica una colonna nella tabella.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

changeColumns(table: Table|string, changedColumns: { oldColumn: TableColumn, newColumn: TableColumn }[]): Promise<void>
  • table - Oggetto Table o nome

  • changedColumns - Array di colonne modificate:

    • oldColumn - Vecchio oggetto TableColumn
    • newColumn - Nuovo oggetto TableColumn

Modifica più colonne nella tabella.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

dropColumn(table: Table|string, column: TableColumn|string, ifExists?: boolean): Promise<void>
  • table - Oggetto Table o nome

  • column - Oggetto TableColumn o nome della colonna da eliminare

  • ifExists - se impostato su true, ignora silenziosamente se la colonna non esiste; altrimenti genera un errore (predefinito)

Elimina una colonna nella tabella.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

dropColumns(table: Table|string, columns: TableColumn[]|string[], ifExists?: boolean): Promise<void>
  • table - Oggetto Table o nome

  • columns - array di oggetti TableColumn o nomi di colonne da eliminare

  • ifExists - se impostato su true, ignora silenziosamente se le colonne non esistono; altrimenti genera un errore (predefinito)

Elimina colonne nella tabella.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

createPrimaryKey(table: Table|string, columnNames: string[]): Promise<void>
  • table - Oggetto Table o nome

  • columnNames - array di nomi di colonne che costituiranno la chiave primaria

Crea una nuova chiave primaria.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

updatePrimaryKeys(table: Table|string, columns: TableColumn[]): Promise<void>
  • table - Oggetto Table o nome

  • columns - array di oggetti TableColumn da aggiornare

Aggiorna chiavi primarie composite.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

dropPrimaryKey(table: Table|string, constraintName?: string, ifExists?: boolean): Promise<void>
  • table - Oggetto Table o nome

  • constraintName - nome del vincolo (opzionale)

  • ifExists - se impostato su true, ignora silenziosamente se la chiave primaria non esiste; altrimenti genera un errore (predefinito)

Elimina una chiave primaria.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

createUniqueConstraint(table: Table|string, uniqueConstraint: TableUnique): Promise<void>
  • table - Oggetto Table o nome

  • uniqueConstraint - Oggetto TableUnique da creare

Crea un nuovo vincolo di unicità.

Nota: non funziona per MySQL, poiché MySQL memorizza i vincoli di unicità come indici univoci. Usare invece il metodo createIndex().


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

createUniqueConstraints(table: Table|string, uniqueConstraints: TableUnique[]): Promise<void>
  • table - Oggetto Table o nome

  • uniqueConstraints - array di oggetti TableUnique da creare

Crea nuovi vincoli di unicità.

Nota: non funziona per MySQL, poiché MySQL memorizza i vincoli di unicità come indici univoci. Usare invece il metodo createIndices().


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

dropUniqueConstraint(table: Table|string, uniqueOrName: TableUnique|string, ifExists?: boolean): Promise<void>
  • table - Oggetto Table o nome

  • uniqueOrName - Oggetto TableUnique o nome del vincolo di unicità da eliminare

  • ifExists - se impostato su true, ignora silenziosamente se il vincolo non esiste; altrimenti genera un errore (predefinito)

Elimina un vincolo di unicità.

Nota: non funziona per MySQL, poiché MySQL memorizza i vincoli di unicità come indici univoci. Usare invece il metodo dropIndex().


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

dropUniqueConstraints(table: Table|string, uniqueConstraints: TableUnique[], ifExists?: boolean): Promise<void>
  • table - Oggetto Table o nome

  • uniqueConstraints - array di oggetti TableUnique da eliminare

  • ifExists - se impostato su true, ignora silenziosamente se i vincoli non esistono; altrimenti genera un errore (predefinito)

Elimina più vincoli di unicità.

Nota: non funziona per MySQL, perché MySQL memorizza i vincoli univoci come indici univoci. Utilizza invece il metodo dropIndices().


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

createCheckConstraint(table: Table|string, checkConstraint: TableCheck): Promise<void>
  • table - Oggetto Table o nome

  • checkConstraint - Oggetto TableCheck

Crea nuovi vincoli di controllo.

Nota: MySQL non supporta i vincoli di controllo.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

createCheckConstraints(table: Table|string, checkConstraints: TableCheck[]): Promise<void>
  • table - Oggetto Table o nome

  • checkConstraints - array di oggetti TableCheck

Crea nuovi vincoli di controllo.

Nota: MySQL non supporta i vincoli di controllo.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

dropCheckConstraint(table: Table|string, checkOrName: TableCheck|string, ifExists?: boolean): Promise<void>
  • table - Oggetto Table o nome

  • checkOrName - Oggetto TableCheck o nome del vincolo di controllo

  • ifExists - se impostato su true, ignora silenziosamente se il vincolo non esiste; altrimenti genera un errore (predefinito)

Elimina un vincolo di controllo (check constraint).

Nota: MySQL non supporta i vincoli di controllo.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

dropCheckConstraints(table: Table|string, checkConstraints: TableCheck[], ifExists?: boolean): Promise<void>
  • table - Oggetto Table o nome

  • checkConstraints - array di oggetti TableCheck

  • ifExists - se impostato su true, ignora silenziosamente se i vincoli non esistono; altrimenti genera un errore (predefinito)

Elimina più vincoli di controllo.

Nota: MySQL non supporta i vincoli di controllo.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

createExclusionConstraint(table: Table|string, exclusionConstraint: TableExclusion): Promise<void>
  • table - Oggetto Table o nome

  • exclusionConstraint - Oggetto TableExclusion

Crea un nuovo vincolo di esclusione.

Nota: solo PostgreSQL supporta i vincoli di esclusione.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

createExclusionConstraints(table: Table|string, exclusionConstraints: TableExclusion[]): Promise<void>
  • table - Oggetto Table o nome

  • exclusionConstraints - array di oggetti TableExclusion

Crea nuovi vincoli di esclusione.

Nota: solo PostgreSQL supporta i vincoli di esclusione.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

dropExclusionConstraint(table: Table|string, exclusionOrName: TableExclusion|string, ifExists?: boolean): Promise<void>
  • table - Oggetto Table o nome

  • exclusionOrName - Oggetto TableExclusion o nome del vincolo di esclusione

  • ifExists - se impostato su true, ignora silenziosamente se il vincolo non esiste; altrimenti genera un errore (predefinito)

Elimina un vincolo di esclusione.

Nota: solo PostgreSQL supporta i vincoli di esclusione.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

dropExclusionConstraints(table: Table|string, exclusionConstraints: TableExclusion[], ifExists?: boolean): Promise<void>
  • table - Oggetto Table o nome

  • exclusionConstraints - array di oggetti TableExclusion

  • ifExists - se impostato su true, ignora silenziosamente se i vincoli non esistono; altrimenti genera un errore (predefinito)

Elimina vincoli di esclusione.

Nota: solo PostgreSQL supporta i vincoli di esclusione.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

createForeignKey(table: Table|string, foreignKey: TableForeignKey): Promise<void>
  • table - Oggetto Table o nome

  • foreignKey - Oggetto TableForeignKey

Crea una nuova chiave esterna (foreign key).


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

createForeignKeys(table: Table|string, foreignKeys: TableForeignKey[]): Promise<void>
  • table - Oggetto Table o nome

  • foreignKeys - array di oggetti TableForeignKey

Crea nuove chiavi esterne.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

dropForeignKey(table: Table|string, foreignKeyOrName: TableForeignKey|string, ifExists?: boolean): Promise<void>
  • table - Oggetto Table o nome

  • foreignKeyOrName - Oggetto TableForeignKey o nome della chiave esterna

  • ifExists - se impostato su true, ignora silenziosamente se la chiave esterna non esiste; altrimenti genera un errore (predefinito)

Elimina una chiave esterna.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

dropForeignKeys(table: Table|string, foreignKeys: TableForeignKey[], ifExists?: boolean): Promise<void>
  • table - Oggetto Table o nome

  • foreignKeys - array di oggetti TableForeignKey

  • ifExists - quando impostato a true, ignora silenziosamente se le chiavi esterne non esistono; altrimenti genera un errore (predefinito)

Elimina le chiavi esterne.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

createIndex(table: Table|string, index: TableIndex): Promise<void>
  • table - Oggetto Table o nome

  • index - Oggetto TableIndex

Crea un nuovo indice.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

createIndices(table: Table|string, indices: TableIndex[]): Promise<void>
  • table - Oggetto Table o nome

  • indices - array di oggetti TableIndex

Crea nuovi indici.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

dropIndex(table: Table|string, index: TableIndex|string, ifExists?: boolean): Promise<void>
  • table - Oggetto Table o nome

  • index - Oggetto TableIndex o nome dell'indice

  • ifExists - quando impostato a true, ignora silenziosamente se l'indice non esiste; altrimenti genera un errore (predefinito)

Elimina un indice.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

dropIndices(table: Table|string, indices: TableIndex[], ifExists?: boolean): Promise<void>
  • table - Oggetto Table o nome

  • indices - array di oggetti TableIndex

  • ifExists - quando impostato a true, ignora silenziosamente se gli indici non esistono; altrimenti genera un errore (predefinito)

Elimina gli indici.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

clearTable(tableName: string, options?: {cascade?: boolean}): Promise<void>
  • tableName - nome della tabella

  • options - opzioni aggiuntive

    • cascade - Indica se cancellare le righe delle tabelle che hanno chiavi esterne (supportato solo da PostgreSQL/CockroachDB e Oracle; altri database generano un errore se impostato su true). Valore predefinito false

Svuota tutti i contenuti della tabella.

Nota: questa operazione utilizza la query TRUNCATE di SQL che non può essere annullata nelle transazioni.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

enableSqlMemory(): void

Attiva la modalità speciale del query runner in cui le query SQL non vengono eseguite, ma memorizzate in una variabile speciale all'interno del query runner. È possibile recuperare le query memorizzate utilizzando il metodo getMemorySql().


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

disableSqlMemory(): void

Disattiva la modalità speciale del query runner in cui le query SQL non vengono eseguite. Le query precedentemente memorizzate verranno eliminate.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

clearSqlMemory(): void

Svuota tutte le query SQL memorizzate.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

getMemorySql(): SqlInMemory
  • restituisce un oggetto SqlInMemory con array di query SQL upQueries e downQueries

Recupera le query SQL memorizzate. I parametri nelle query sono già sostituiti.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

executeMemoryUpSql(): Promise<void>

Esegue le query SQL di tipo "up" memorizzate.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck

executeMemoryDownSql(): Promise<void>

Esegue le query SQL di tipo "down" memorizzate.


title: Il Futuro di TypeORM author_title: Elevantiq author_name: Michael Bromley e David Hoeck