Opciones del Data Source
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
¿Qué es DataSourceOptions?
DataSourceOptions es la configuración de fuente de datos que pasas al crear una nueva instancia de DataSource.
Diferentes RDBMS tienen sus propias opciones específicas.
Opciones comunes de data source
-
type- Tipo de RDBMS. Debes especificar qué motor de base de datos utilizas. Valores posibles: "mysql", "postgres", "cockroachdb", "sap", "spanner", "mariadb", "sqlite", "cordova", "react-native", "nativescript", "sqljs", "oracle", "mssql", "mongodb", "aurora-mysql", "aurora-postgres", "expo", "better-sqlite3", "capacitor". Esta opción es obligatoria. -
extra- Opciones adicionales que se pasarán al driver subyacente. Úsalo si necesitas pasar configuraciones adicionales al driver de la base de datos. -
entities- Entidades o Esquemas de Entidad que se cargarán y usarán para esta fuente de datos. Acepta clases de entidad, clases de esquemas de entidad y rutas de directorio desde donde cargarlas. Los directorios admiten patrones glob. Ejemplo:entities: [Post, Category, "entities/*.js", "modules/**/entities/*.js"]. Más información sobre Entidades. Más información sobre Esquemas de Entidad. -
subscribers- Subscriptores que se cargarán y usarán para esta fuente de datos. Acepta tanto clases de entidad como directorios desde donde cargarlos. Los directorios admiten patrones glob. Ejemplo:subscribers: [PostSubscriber, AppSubscriber, "subscribers/*.js", "modules/**/subscribers/*.js"]. Más información sobre Subscriptores. -
logging- Indica si el registro de actividad (logging) está habilitado o no. Si se establece entrue, se habilitará el registro de consultas y errores. También puedes especificar tipos específicos de logging, por ejemplo["query", "error", "schema"]. Más información sobre Logging. -
logger- Logger que se utilizará para el registro de actividad. Valores posibles: "advanced-console", "formatted-console", "simple-console" y "file". Por defecto es "advanced-console". También puedes especificar una clase logger que implemente la interfazLogger. Más información sobre Logging. -
maxQueryExecutionTime- Si el tiempo de ejecución de una consulta excede este tiempo máximo (en milisegundos), el logger registrará dicha consulta. -
poolSize- Configura el número máximo de conexiones activas en el pool. -
namingStrategy- Estrategia de nomenclatura para nombrar tablas y columnas en la base de datos. -
entityPrefix- Añade el prefijo especificado a todas las tablas (o colecciones) en esta fuente de datos. -
entitySkipConstructor- Indica si TypeORM debe omitir los constructores al deserializar entidades desde la base de datos. Ten en cuenta que al no llamar al constructor, las propiedades privadas y las propiedades predeterminadas no funcionarán como se espera. -
dropSchema- Elimina el esquema cada vez que se inicializa la fuente de datos. Ten cuidado con esta opción y no la uses en producción, ya que perderás todos los datos. Es útil durante el desarrollo y depuración. -
synchronize- Indica si el esquema de la base de datos debe crearse automáticamente en cada inicio de la aplicación. Ten cuidado con esta opción y no la uses en producción, ya que podrías perder datos. Es útil durante el desarrollo y depuración. Como alternativa, puedes usar la CLI con el comando schema:sync. Nota: Para MongoDB no crea esquema (puesto que MongoDB no lo requiere), solo sincroniza creando índices. -
migrations- Migraciones que se cargarán y usarán para esta fuente de datos. -
migrationsRun- Indica si las migraciones deben ejecutarse automáticamente en cada inicio de la aplicación. -
migrationsTableName- Nombre de la tabla en la base de datos que contendrá información sobre las migraciones ejecutadas. -
migrationsTransactionMode- Controla el modo de transacción al ejecutar migrations. -
metadataTableName- Nombre de la tabla en la base de datos que contendrá los metadatos de las tablas. Por defecto, esta tabla se llama "typeorm_metadata". -
cache- Habilita el caché de resultados de entidades. También puedes configurar aquí el tipo de caché y otras opciones. Lee más sobre caché aquí. -
isolateWhereStatements- Habilita el aislamiento de cláusulas where, envolviendo automáticamente cada condición where entre paréntesis. Ej:.where("user.firstName = :search OR user.lastName = :search")se convierte enWHERE (user.firstName = ? OR user.lastName = ?)en lugar deWHERE user.firstName = ? OR user.lastName = ? -
invalidWhereValuesBehavior- Controla cómo se manejan los valores null y undefined en condiciones where para todas las operaciones de TypeORM (búsquedas, query builders, métodos de repositorio).- Comportamiento para
null:'ignore'(predeterminado) - omite propiedades null'sql-null'- transforma null a SQL NULL'throw'- lanza un error
- Comportamiento para
undefined:'ignore'(predeterminado) - omite propiedades undefined'throw'- lanza un error
Ejemplo:
invalidWhereValuesBehavior: { null: 'sql-null', undefined: 'throw' }.Más información sobre Manejo de Null y Undefined.
- Comportamiento para
Ejemplo de opciones de Data Source
Este es un pequeño ejemplo de opciones para mysql:
{
host: "localhost",
port: 3306,
username: "test",
password: "test",
database: "test",
logging: true,
synchronize: true,
entities: [__dirname + "/entities/**/*{.js,.ts}"],
subscribers: [__dirname + "/subscribers/**/*{.js,.ts}"],
entitySchemas: [__dirname + "/schemas/**/*.json"],
migrations: [__dirname + "/migrations/**/*{.js,.ts}"]
}