API de QueryRunner
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 estrue; 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 estrue; 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 estrue; 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 estrue; de lo contrario, lanza error si no se encuentra el esquema -
isCascade- Si estrue, 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 estrue; 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 estrue; 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 antiguonewColumn- 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
SqlInMemorycon arreglos de sentencias SQLupQueriesydownQueries
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.