Saltar al contenido principal

API de QueryRunner

Traducción Beta No Oficial

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

Usa QueryRunner para modificar esquemas mediante API.

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[]>

Devuelve todos los nombres de bases de datos disponibles, incluyendo sistemas.


getSchemas(database?: string): Promise<string[]>
  • database - Si se especifica este parámetro, devuelve los esquemas de esa base de datos

Devuelve nombres de esquemas disponibles, incluyendo sistemas. Útil para SQLServer y Postgres.


getTable(tableName: string): Promise<Table|undefined>
  • tableName - Nombre de la tabla a cargar

Carga una tabla desde la base de datos por nombre.


getTables(tableNames: string[]): Promise<Table[]>
  • tableNames - Nombres de las tablas a cargar

Carga tablas con los nombres especificados desde la base de datos.


hasDatabase(database: string): Promise<boolean>
  • database - Nombre de la base de datos a verificar

Comprueba si existe una base de datos con el nombre dado.


hasSchema(schema: string): Promise<boolean>
  • schema - Nombre del esquema a verificar

Comprueba si existe un esquema con el nombre dado. Solo se usa para SqlServer y Postgres.


hasTable(table: Table|string): Promise<boolean>
  • table - Objeto Table o nombre de tabla

Verifica si existe la tabla.


hasColumn(table: Table|string, columnName: string): Promise<boolean>
  • table - Objeto Table o nombre de tabla

  • columnName - Nombre de la columna a verificar

Comprueba si existe la columna en la tabla.


createDatabase(database: string, ifNotExist?: boolean): Promise<void>
  • database - Nombre de la base de datos

  • ifNotExist - Omite la creación si es true; de lo contrario, lanza error si la base de datos ya existe

Crea una nueva base de datos.


dropDatabase(database: string, ifExist?: boolean): Promise<void>
  • database - Nombre de la base de datos

  • ifExist - Omite la eliminación si es true; de lo contrario, lanza error si no se encuentra la base de datos

Elimina una base de datos.


createSchema(schemaPath: string, ifNotExist?: boolean): Promise<void>
  • schemaPath - Nombre del esquema. En SQLServer acepta rutas de esquema (ej. 'dbName.schemaName'). Si se pasa una ruta, creará el esquema en la base de datos especificada

  • ifNotExist - Omite la creación si es true; de lo contrario, lanza error si el esquema ya existe

Crea un nuevo esquema de tabla.


dropSchema(schemaPath: string, ifExist?: boolean, isCascade?: boolean): Promise<void>
  • schemaPath - Nombre del esquema. En SQLServer acepta rutas de esquema (ej. 'dbName.schemaName'). Si se pasa una ruta, eliminará el esquema en la base de datos especificada

  • ifExist - Omite la eliminación si es true; de lo contrario, lanza error si no se encuentra el esquema

  • isCascade - Si es true, elimina automáticamente objetos contenidos en el esquema (tablas, funciones, etc.). Solo se usa en Postgres

Elimina un esquema de tabla.


createTable(table: Table, ifNotExist?: boolean, createForeignKeys?: boolean, createIndices?: boolean): Promise<void>
  • table - Objeto Table

  • ifNotExist - Omite la creación si es true; de lo contrario, lanza error si la tabla ya existe. Valor por defecto: false

  • createForeignKeys - Indica si se crearán llaves foráneas al crear la tabla. Valor por defecto: true

  • createIndices - Indica si se crearán índices al crear la tabla. Valor por defecto: true

Crea una nueva tabla.


dropTable(table: Table|string, ifExist?: boolean, dropForeignKeys?: boolean, dropIndices?: boolean): Promise<void>
  • table - Objeto Table o nombre de tabla a eliminar

  • ifExist - Omite la eliminación si es true; de lo contrario, lanza error si la tabla no existe

  • dropForeignKeys - Indica si se eliminarán llaves foráneas al borrar la tabla. Valor por defecto: true

  • dropIndices - Indica si se eliminarán índices al borrar la tabla. Valor por defecto: true

Elimina una tabla.


renameTable(oldTableOrName: Table|string, newTableName: string): Promise<void>
  • oldTableOrName - Objeto Table antiguo o nombre a renombrar

  • newTableName - Nuevo nombre de tabla

Renombra una tabla.


addColumn(table: Table|string, column: TableColumn): Promise<void>
  • table - Objeto Table o nombre de tabla

  • column - Nueva columna

Añade nuevas columnas.


addColumns(table: Table|string, columns: TableColumn[]): Promise<void>
  • table - Objeto Table o nombre de tabla

  • columns - Nuevas columnas

Añade nuevas columnas.


renameColumn(table: Table|string, oldColumnOrName: TableColumn|string, newColumnOrName: TableColumn|string): Promise<void>
  • table - Objeto Table o nombre de tabla

  • oldColumnOrName - Columna antigua. Acepta objeto TableColumn o nombre de columna

  • newColumnOrName - Nueva columna. Acepta objeto TableColumn o nombre de columna

Renombra una columna.


changeColumn(table: Table|string, oldColumn: TableColumn|string, newColumn: TableColumn): Promise<void>
  • table - Objeto Table o nombre de tabla

  • oldColumn - Columna antigua. Acepta objeto TableColumn o nombre de columna

  • newColumn - Nueva columna. Acepta objeto TableColumn

Modifica una columna en la tabla.


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

  • changedColumns - Arreglo de columnas modificadas:

    • oldColumn - Objeto TableColumn antiguo
    • newColumn - Nuevo objeto TableColumn

Modifica múltiples columnas en la tabla.


dropColumn(table: Table|string, column: TableColumn|string): Promise<void>
  • table - Objeto Table o nombre de tabla

  • column - Objeto TableColumn o nombre de columna a eliminar

Elimina una columna de la tabla.


dropColumns(table: Table|string, columns: TableColumn[]|string[]): Promise<void>
  • table - Objeto Table o nombre de tabla

  • columns - Arreglo de objetos TableColumn o nombres de columnas a eliminar

Elimina múltiples columnas de la tabla.


createPrimaryKey(table: Table|string, columnNames: string[]): Promise<void>
  • table - Objeto Table o nombre de tabla

  • columnNames - Arreglo de nombres de columna que conformarán la clave primaria

Crea una nueva clave primaria.


updatePrimaryKeys(table: Table|string, columns: TableColumn[]): Promise<void>
  • table - Objeto Table o nombre de tabla

  • columns - Arreglo de objetos TableColumn a actualizar

Actualiza claves primarias compuestas.


dropPrimaryKey(table: Table|string): Promise<void>
  • table - Objeto Table o nombre de tabla

Elimina una clave primaria.


createUniqueConstraint(table: Table|string, uniqueConstraint: TableUnique): Promise<void>
  • table - Objeto Table o nombre de tabla

  • uniqueConstraint - Objeto TableUnique a crear

Crea una nueva restricción única.

Nota: No funciona en MySQL porque almacena restricciones únicas como índices únicos. Usa createIndex() en su lugar.


createUniqueConstraints(table: Table|string, uniqueConstraints: TableUnique[]): Promise<void>
  • table - Objeto Table o nombre de tabla

  • uniqueConstraints - Arreglo de objetos TableUnique a crear

Crea múltiples restricciones únicas.

Nota: No funciona en MySQL porque almacena restricciones únicas como índices únicos. Usa createIndices() en su lugar.


dropUniqueConstraint(table: Table|string, uniqueOrName: TableUnique|string): Promise<void>
  • table - Objeto Table o nombre de tabla

  • uniqueOrName - Objeto TableUnique o nombre de restricción única a eliminar

Elimina una restricción única.

Nota: No funciona en MySQL porque almacena restricciones únicas como índices únicos. Usa dropIndex() en su lugar.


dropUniqueConstraints(table: Table|string, uniqueConstraints: TableUnique[]): Promise<void>
  • table - Objeto Table o nombre de tabla

  • uniqueConstraints - Arreglo de objetos TableUnique a eliminar

Elimina restricciones únicas.

Nota: no funciona en MySQL, porque MySQL almacena restricciones únicas como índices únicos. Usa el método dropIndices() en su lugar.


createCheckConstraint(table: Table|string, checkConstraint: TableCheck): Promise<void>
  • table - Objeto Table o nombre de tabla

  • checkConstraint - Objeto TableCheck

Crea una nueva restricción de verificación.

Nota: MySQL no admite restricciones de verificación.


createCheckConstraints(table: Table|string, checkConstraints: TableCheck[]): Promise<void>
  • table - Objeto Table o nombre de tabla

  • checkConstraints - Arreglo de objetos TableCheck

Crea una nueva restricción de verificación.

Nota: MySQL no admite restricciones de verificación.


dropCheckConstraint(table: Table|string, checkOrName: TableCheck|string): Promise<void>
  • table - Objeto Table o nombre de tabla

  • checkOrName - Objeto TableCheck o nombre de restricción de verificación

Elimina una restricción de verificación.

Nota: MySQL no admite restricciones de verificación.


dropCheckConstraints(table: Table|string, checkConstraints: TableCheck[]): Promise<void>
  • table - Objeto Table o nombre de tabla

  • checkConstraints - Arreglo de objetos TableCheck

Elimina restricciones de verificación.

Nota: MySQL no admite restricciones de verificación.


createForeignKey(table: Table|string, foreignKey: TableForeignKey): Promise<void>
  • table - Objeto Table o nombre de tabla

  • foreignKey - Objeto TableForeignKey

Crea una nueva llave foránea.


createForeignKeys(table: Table|string, foreignKeys: TableForeignKey[]): Promise<void>
  • table - Objeto Table o nombre de tabla

  • foreignKeys - Arreglo de objetos TableForeignKey

Crea nuevas llaves foráneas.


dropForeignKey(table: Table|string, foreignKeyOrName: TableForeignKey|string): Promise<void>
  • table - Objeto Table o nombre de tabla

  • foreignKeyOrName - Objeto TableForeignKey o nombre de clave foránea

Elimina una llave foránea.


dropForeignKeys(table: Table|string, foreignKeys: TableForeignKey[]): Promise<void>
  • table - Objeto Table o nombre de tabla

  • foreignKeys - Arreglo de objetos TableForeignKey

Elimina llaves foráneas.


createIndex(table: Table|string, index: TableIndex): Promise<void>
  • table - Objeto Table o nombre de tabla

  • index - Objeto TableIndex

Crea un nuevo índice.


createIndices(table: Table|string, indices: TableIndex[]): Promise<void>
  • table - Objeto Table o nombre de tabla

  • indices - Arreglo de objetos TableIndex

Crea nuevos índices.


dropIndex(table: Table|string, index: TableIndex|string): Promise<void>
  • table - Objeto Table o nombre de tabla

  • index - Objeto TableIndex o nombre de índice

Elimina un índice.


dropIndices(table: Table|string, indices: TableIndex[]): Promise<void>
  • table - Objeto Table o nombre de tabla

  • indices - Arreglo de objetos TableIndex

Elimina índices.


clearTable(tableName: string): Promise<void>
  • tableName - Nombre de tabla

Vacía todo el contenido de la tabla.

Nota: esta operación usa la consulta TRUNCATE de SQL que no puede revertirse en transacciones.


enableSqlMemory(): void

Habilita un modo especial del query runner donde las consultas SQL no se ejecutarán, sino que se memorizarán en una variable especial dentro del query runner. Puedes obtener las consultas SQL memorizadas usando el método getMemorySql().


disableSqlMemory(): void

Deshabilita el modo especial del query runner donde las consultas SQL no se ejecutaban. Las consultas SQL memorizadas previamente se eliminarán.


clearSqlMemory(): void

Elimina todas las sentencias SQL memorizadas.


getMemorySql(): SqlInMemory
  • Devuelve objeto SqlInMemory con arreglos de sentencias SQL upQueries y downQueries

Obtiene el SQL almacenado en la memoria. Los parámetros en el SQL ya han sido reemplazados.


executeMemoryUpSql(): Promise<void>

Ejecuta las consultas SQL 'up' memorizadas.


executeMemoryDownSql(): Promise<void>

Ejecuta las consultas SQL 'down' memorizadas.