API di Query Runner
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 sutrue, 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 sutrue, 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 sutrue, 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 sutrue, ignora silenziosamente se lo schema non esiste; altrimenti genera un errore (predefinito) -
isCascade- Setrue, 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 sutrue, ignora silenziosamente se la tabella esiste già; altrimenti genera un errore (predefinito) -
createForeignKeys- Indica se creare chiavi esterne durante la creazione della tabella. Predefinitotrue -
createIndices- Indica se creare indici durante la creazione della tabella. Predefinitotrue
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 sutrue, ignora silenziosamente se la tabella non esiste; altrimenti genera un errore (predefinito) -
dropForeignKeys- Indica se eliminare le chiavi esterne durante la cancellazione della tabella. Predefinitotrue -
dropIndices- Indica se eliminare gli indici durante la cancellazione della tabella. Predefinitotrue
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 sutrue, 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 TableColumnnewColumn- 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 sutrue, 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 sutrue, 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 sutrue, 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 sutrue, 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 sutrue, 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 sutrue, 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 sutrue, 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 sutrue, 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 sutrue, 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 sutrue, 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 atrue, 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 atrue, 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 atrue, 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 aggiuntivecascade- 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 sutrue). Valore predefinitofalse
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
SqlInMemorycon array di query SQLupQueriesedownQueries
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.