DataSource
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
¿Qué es un DataSource?
Tu interacción con la base de datos solo es posible después de configurar un DataSource.
El DataSource de TypeORM almacena la configuración de conexión de tu base de datos y
establece la conexión inicial o pool de conexiones según el RDBMS que utilices.
Para establecer la conexión inicial/pool de conexiones, debes llamar al método initialize de tu instancia de DataSource.
La desconexión (cierre de todas las conexiones en el pool) ocurre cuando se llama al método destroy.
Generalmente, llamas al método initialize de la instancia de DataSource durante el arranque de la aplicación,
y llamas a su método destroy después de terminar de trabajar con la base de datos.
En la práctica, si estás construyendo un backend para tu sitio y tu servidor backend permanece siempre en ejecución,
nunca debes llamar al método destroy de un DataSource.
Creando un nuevo DataSource
Para crear una nueva instancia de DataSource debes inicializar su constructor llamando new DataSource
y asignarla a una variable global que usarás en toda tu aplicación:
import { DataSource } from "typeorm"
const AppDataSource = new DataSource({
type: "mysql",
host: "localhost",
port: 3306,
username: "test",
password: "test",
database: "test",
})
try {
await AppDataSource.initialize()
console.log("Data Source has been initialized!")
} catch (error) {
console.error("Error during Data Source initialization", error)
}
Es buena idea hacer que AppDataSource esté disponible globalmente mediante export ya que usarás esta instancia en toda tu aplicación.
DataSource acepta DataSourceOptions y estas opciones varían según el type de base de datos que uses.
Para diferentes tipos de bases de datos, puedes especificar diferentes opciones.
Puedes definir tantas fuentes de datos como necesites en tu aplicación, por ejemplo:
import { DataSource } from "typeorm"
const MysqlDataSource = new DataSource({
type: "mysql",
host: "localhost",
port: 3306,
username: "test",
password: "test",
database: "test",
entities: [__dirname + "/entities/**/*{.js,.ts}"],
})
const PostgresDataSource = new DataSource({
type: "postgres",
host: "localhost",
port: 5432,
username: "test",
password: "test",
database: "test",
entities: [__dirname + "/entities/**/*{.js,.ts}"],
})
¿Cómo usar DataSource?
Una vez configurado tu DataSource, puedes usarlo en cualquier parte de tu aplicación, por ejemplo:
import { AppDataSource } from "./app-data-source"
import { User } from "../entity/User"
export class UserController {
@Get("/users")
getAll() {
return AppDataSource.manager.find(User)
}
}
Usando la instancia de DataSource puedes ejecutar operaciones de base de datos con tus entidades,
especialmente mediante las propiedades .manager y .getRepository().
Para más información sobre ellas, consulta la documentación de Entity Manager y Repository.