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")
}
}
getDatabases(): Promise<string[]>
Restituisce tutti i nomi di database disponibili, inclusi i database di sistema.
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.
getTable(tableName: string): Promise<Table|undefined>
tableName- Nome della tabella da caricare
Carica una tabella dal database in base a un nome specificato.
getTables(tableNames: string[]): Promise<Table[]>
tableNames- Nomi delle tabelle da caricare
Carica le tabelle dal database in base ai nomi specificati.
hasDatabase(database: string): Promise<boolean>
database- Nome del database da verificare
Verifica se esiste un database con il nome specificato.
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.
hasTable(table: Table|string): Promise<boolean>
table- Oggetto Table o nome
Verifica se la tabella esiste.
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.
createDatabase(database: string, ifNotExist?: boolean): Promise<void>
-
database- Nome del database -
ifNotExist- Salta la creazione setrue, altrimenti genera un errore se il database esiste già
Crea un nuovo database.
dropDatabase(database: string, ifExist?: boolean): Promise<void>
-
database- Nome del database -
ifExist- Salta l'eliminazione setrue, altrimenti genera un errore se il database non viene trovato
Elimina il database.
createSchema(schemaPath: string, ifNotExist?: 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 -
ifNotExist- Salta la creazione setrue, altrimenti genera un errore se lo schema esiste già
Crea un nuovo schema di tabella.
dropSchema(schemaPath: string, ifExist?: 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 -
ifExist- Salta l'eliminazione setrue, altrimenti genera un errore se lo schema non viene trovato -
isCascade- Setrue, elimina automaticamente gli oggetti (tabelle, funzioni, ecc.) contenuti nello schema. Utilizzato solo in Postgres
Elimina uno schema di tabella.
createTable(table: Table, ifNotExist?: boolean, createForeignKeys?: boolean, createIndices?: boolean): Promise<void>
-
table- Oggetto Tabella -
ifNotExist- Salta la creazione setrue, altrimenti genera un errore se la tabella esiste già. Predefinitofalse -
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.
dropTable(table: Table|string, ifExist?: boolean, dropForeignKeys?: boolean, dropIndices?: boolean): Promise<void>
-
table- Oggetto Tabella o nome della tabella da eliminare -
ifExist- Salta l'eliminazione setrue, altrimenti genera un errore se la tabella non esiste -
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.
renameTable(oldTableOrName: Table|string, newTableName: string): Promise<void>
-
oldTableOrName- Vecchio oggetto Tabella o nome da rinominare -
newTableName- Nuovo nome della tabella
Rinomina una tabella.
addColumn(table: Table|string, column: TableColumn): Promise<void>
-
table- Oggetto Table o nome -
column- Nuova colonna
Aggiunge nuove colonne.
addColumns(table: Table|string, columns: TableColumn[]): Promise<void>
-
table- Oggetto Table o nome -
columns- Nuove colonne
Aggiunge nuove colonne.
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.
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.
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.
dropColumn(table: Table|string, column: TableColumn|string): Promise<void>
-
table- Oggetto Table o nome -
column- Oggetto TableColumn o nome della colonna da eliminare
Elimina una colonna nella tabella.
dropColumns(table: Table|string, columns: TableColumn[]|string[]): Promise<void>
-
table- Oggetto Table o nome -
columns- array di oggetti TableColumn o nomi di colonne da eliminare
Elimina più colonne nella tabella.
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.
updatePrimaryKeys(table: Table|string, columns: TableColumn[]): Promise<void>
-
table- Oggetto Table o nome -
columns- array di oggetti TableColumn da aggiornare
Aggiorna chiavi primarie composite.
dropPrimaryKey(table: Table|string): Promise<void>
table- Oggetto Table o nome
Elimina una chiave primaria.
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().
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().
dropUniqueConstraint(table: Table|string, uniqueOrName: TableUnique|string): Promise<void>
-
table- Oggetto Table o nome -
uniqueOrName- Oggetto TableUnique o nome del vincolo di unicità da eliminare
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().
dropUniqueConstraints(table: Table|string, uniqueConstraints: TableUnique[]): Promise<void>
-
table- Oggetto Table o nome -
uniqueConstraints- array di oggetti TableUnique da eliminare
Elimina più vincoli di unicità.
Nota: non funziona per MySQL, perché MySQL memorizza i vincoli univoci come indici univoci. Utilizza invece il metodo
dropIndices().
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.
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.
dropCheckConstraint(table: Table|string, checkOrName: TableCheck|string): Promise<void>
-
table- Oggetto Table o nome -
checkOrName- Oggetto TableCheck o nome del vincolo di controllo
Elimina un vincolo di controllo.
Nota: MySQL non supporta i vincoli di controllo.
dropCheckConstraints(table: Table|string, checkConstraints: TableCheck[]): Promise<void>
-
table- Oggetto Table o nome -
checkConstraints- array di oggetti TableCheck
Elimina più vincoli di controllo.
Nota: MySQL non supporta i vincoli di controllo.
createForeignKey(table: Table|string, foreignKey: TableForeignKey): Promise<void>
-
table- Oggetto Table o nome -
foreignKey- Oggetto TableForeignKey
Crea una nuova chiave esterna (foreign key).
createForeignKeys(table: Table|string, foreignKeys: TableForeignKey[]): Promise<void>
-
table- Oggetto Table o nome -
foreignKeys- array di oggetti TableForeignKey
Crea nuove chiavi esterne.
dropForeignKey(table: Table|string, foreignKeyOrName: TableForeignKey|string): Promise<void>
-
table- Oggetto Table o nome -
foreignKeyOrName- Oggetto TableForeignKey o nome della chiave esterna
Elimina una chiave esterna.
dropForeignKeys(table: Table|string, foreignKeys: TableForeignKey[]): Promise<void>
-
table- Oggetto Table o nome -
foreignKeys- array di oggetti TableForeignKey
Elimina più chiavi esterne.
createIndex(table: Table|string, index: TableIndex): Promise<void>
-
table- Oggetto Table o nome -
index- Oggetto TableIndex
Crea un nuovo indice.
createIndices(table: Table|string, indices: TableIndex[]): Promise<void>
-
table- Oggetto Table o nome -
indices- array di oggetti TableIndex
Crea nuovi indici.
dropIndex(table: Table|string, index: TableIndex|string): Promise<void>
-
table- Oggetto Table o nome -
index- Oggetto TableIndex o nome dell'indice
Elimina un indice.
dropIndices(table: Table|string, indices: TableIndex[]): Promise<void>
-
table- Oggetto Table o nome -
indices- array di oggetti TableIndex
Elimina più indici.
clearTable(tableName: string): Promise<void>
tableName- nome della tabella
Svuota tutti i contenuti della tabella.
Nota: questa operazione utilizza la query TRUNCATE di SQL che non può essere annullata nelle transazioni.
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().
disableSqlMemory(): void
Disattiva la modalità speciale del query runner in cui le query SQL non vengono eseguite. Le query precedentemente memorizzate verranno eliminate.
clearSqlMemory(): void
Svuota tutte le query SQL memorizzate.
getMemorySql(): SqlInMemory
- restituisce un oggetto
SqlInMemorycon array di query SQLupQueriesedownQueries
Recupera le query SQL memorizzate. I parametri nelle query sono già sostituiti.
executeMemoryUpSql(): Promise<void>
Esegue le query SQL di tipo "up" memorizzate.
executeMemoryDownSql(): Promise<void>
Esegue le query SQL di tipo "down" memorizzate.