Saltar al contenido principal

API de DataSource

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 →

const dataSourceOptions: DataSourceOptions = dataSource.options
  • isInitialized - Indica si el DataSource fue inicializado y si se estableció la conexión inicial/pool de conexiones con la base de datos.
const isInitialized: boolean = dataSource.isInitialized
  • driver - Driver de base de datos subyacente utilizado en este dataSource.
const driver: Driver = dataSource.driver
const manager: EntityManager = dataSource.manager
// you can call manager methods, for example find:
const users = await manager.find()
  • mongoManager - MongoEntityManager utilizado para trabajar con entidades en data sources de MongoDB. Para más información sobre MongoEntityManager consulta la documentación de MongoDB.
const manager: MongoEntityManager = dataSource.mongoManager
// you can call manager or mongodb-manager specific methods, for example find:
const users = await manager.find()
  • initialize - Inicializa el data source y abre el pool de conexiones a la base de datos.
await dataSource.initialize()
  • destroy - Destruye el DataSource y cierra todas las conexiones de la base de datos. Suele llamarse a este método cuando la aplicación se está cerrando.
await dataSource.destroy()
  • synchronize - Sincroniza el esquema de la base de datos. Se llama automáticamente cuando synchronize: true está configurado en las opciones del data source. Suele utilizarse cuando la aplicación se está iniciando.
await dataSource.synchronize()
  • dropDatabase - Elimina la base de datos y todos sus datos. ¡Extrema precaución en producción! Este método borrará todas tus tablas y sus datos. Solo puede usarse después de establecer conexión con la base de datos.
await dataSource.dropDatabase()
  • runMigrations - Ejecuta todas las migraciones pendientes.
await dataSource.runMigrations()
  • undoLastMigration - Revierte la última migración ejecutada.
await dataSource.undoLastMigration()
  • hasMetadata - Comprueba si los metadatos de una entidad dada están registrados.
if (dataSource.hasMetadata(User))
const userMetadata = dataSource.getMetadata(User)
  • getMetadata - Obtiene los EntityMetadata de la entidad especificada. También puedes indicar un nombre de tabla y, si se encuentran metadatos de entidad con ese nombre, se devolverán.
const userMetadata = dataSource.getMetadata(User)
// now you can get any information about User entity
  • getRepository - Obtiene el Repository de la entidad especificada. También puedes indicar un nombre de tabla y, si se encuentra un repositorio para esa tabla, se devolverá. Más información sobre Repositories.
const repository = dataSource.getRepository(User)
// now you can call repository methods, for example find:
const users = await repository.find()
  • getTreeRepository - Obtiene el TreeRepository de la entidad especificada. También puedes indicar un nombre de tabla y, si se encuentra un repositorio para esa tabla, se devolverá. Más información sobre Repositories.
const repository = dataSource.getTreeRepository(Category)
// now you can call tree repository methods, for example findTrees:
const categories = await repository.findTrees()
  • getMongoRepository - Obtiene el MongoRepository de la entidad especificada. Este repositorio se utiliza para entidades en data sources de MongoDB. Más información sobre soporte para MongoDB.
const repository = dataSource.getMongoRepository(User)
// now you can call mongodb-specific repository methods, for example createEntityCursor:
const categoryCursor = repository.createEntityCursor()
const category1 = await categoryCursor.next()
const category2 = await categoryCursor.next()
  • transaction - Proporciona una transacción única donde múltiples solicitudes a la base de datos se ejecutarán en una sola transacción. Más información sobre Transacciones.
await dataSource.transaction(async (manager) => {
// NOTE: you must perform all database operations using given manager instance
// its a special instance of EntityManager working with this transaction
// and don't forget to await things here
})
  • query - Ejecuta una consulta SQL en bruto.
const rawData = await dataSource.query(`SELECT * FROM USERS`)

// You can also use parameters to avoid SQL injection
// The syntax differs between the drivers

// aurora-mysql, better-sqlite3, capacitor, cordova,
// expo, mariadb, mysql, nativescript, react-native,
// sap, sqlite, sqljs
const rawData = await dataSource.query(
"SELECT * FROM USERS WHERE name = ? and age = ?",
["John", 24],
)

// aurora-postgres, cockroachdb, postgres
const rawData = await dataSource.query(
"SELECT * FROM USERS WHERE name = $1 and age = $2",
["John", 24],
)

// oracle
const rawData = await dataSource.query(
"SELECT * FROM USERS WHERE name = :1 and age = :2",
["John", 24],
)

// spanner
const rawData = await dataSource.query(
"SELECT * FROM USERS WHERE name = @param0 and age = @param1",
["John", 24],
)

// mssql
const rawData = await dataSource.query(
"SELECT * FROM USERS WHERE name = @0 and age = @1",
["John", 24],
)
  • sql - Ejecuta una consulta SQL en bruto utilizando literales de plantilla.
const rawData =
await dataSource.sql`SELECT * FROM USERS WHERE name = ${"John"} and age = ${24}`

Más información sobre el uso de la sintaxis de SQL Tag.

  • createQueryBuilder - Crea un constructor de consultas (query builder) para construir consultas. Más información sobre QueryBuilder.
const users = await dataSource
.createQueryBuilder()
.select()
.from(User, "user")
.where("user.name = :name", { name: "John" })
.getMany()
  • createQueryRunner - Crea un ejecutor de consultas (query runner) para gestionar y trabajar con una única conexión real de base de datos. Más información sobre QueryRunner.
const queryRunner = dataSource.createQueryRunner()

// you can use its methods only after you call connect
// which performs real database connection
await queryRunner.connect()

// .. now you can work with query runner and call its methods

// very important - don't forget to release query runner once you finished working with it
await queryRunner.release()