Опции источника данных
Эта страница переведена PageTurner AI (бета). Не одобрена официально проектом. Нашли ошибку? Сообщить о проблеме →
Что такое DataSourceOptions?
DataSourceOptions — это конфигурация источника данных, передаваемая при создании нового экземпляра DataSource.
Разные СУБД имеют свои специфические опции.
Общие опции источников данных
-
type- Тип СУБД. Необходимо указать используемую систему управления базами данных. Допустимые значения: "mysql", "postgres", "cockroachdb", "sap", "spanner", "mariadb", "cordova", "react-native", "nativescript", "sqljs", "oracle", "mssql", "mongodb", "aurora-mysql", "aurora-postgres", "expo", "better-sqlite3", "capacitor". Эта опция обязательна. -
extra- Дополнительные параметры для передачи в базовый драйвер. Используйте эту опцию для передачи специфичных настроек драйверу базы данных. -
entities- Сущности или схемы сущностей для загрузки и использования в этом источнике данных. Принимает классы сущностей, классы схем сущностей и пути к директориям для загрузки. Поддерживаются шаблоны glob. Пример:entities: [Post, Category, "entities/*.js", "modules/**/entities/*.js"]. Подробнее о сущностях. Подробнее о схемах сущностей. -
subscribers- Подписчики для загрузки и использова ния в этом источнике данных. Принимает классы сущностей и пути к директориям для загрузки. Поддерживаются шаблоны glob. Пример:subscribers: [PostSubscriber, AppSubscriber, "subscribers/*.js", "modules/**/subscribers/*.js"]. Подробнее о подписчиках. -
logging- Определяет, включено ли логирование. При значенииtrueвключается логирование запросов и ошибок. Можно указать конкретные типы логирования, например["query", "error", "schema"]. Подробнее о логировании. -
logger- Логгер для записи событий. Допустимые значения: "advanced-console", "formatted-console", "simple-console" и "file". По умолчанию: "advanced-console". Можно указать пользовательский класс логгера, реализующий интерфейсLogger. Подробнее о логировании. -
maxQueryExecutionTime- Если время выполнения запроса превысит указанное значение (в миллисекундах), логгер зарегистрирует этот запрос. -
poolSize- Задаёт максимальное количество активных соединений в пуле. -
namingStrategy- Стратеги я именования для таблиц и столбцов в базе данных. -
entityPrefix- Добавляет указанную строку как префикс ко всем таблицам (или коллекциям) в этом источнике данных. -
entitySkipConstructor- Указывает, пропускать ли конструкторы при десериализации сущностей из базы данных. Обратите внимание: без вызова конструктора приватные свойства и свойства по умолчанию не будут работать корректно. -
dropSchema- Удаляет схему при каждой инициализации источника данных. Не используйте в production — это приведёт к потере всех данных. Полезно при отладке и разработке. -
synchronize- Определяет, создавать ли схему базы данных автоматически при каждом запуске приложения. Не используйте в production — это может привести к потере данных. Полезно при отладке и разработке. Альтернатива: использование CLI-команды schema:sync. Для MongoDB не создаёт схему (т.к. MongoDB бесcхемная), а синхронизирует данные через создание индексов. -
migrations- Миграции для загрузки и использования в этом источнике данных. -
migrationsRun- Определяет, з апускать ли миграции автоматически при каждом запуске приложения. -
migrationsTableName- Название таблицы в базе данных для хранения информации о выполненных миграциях. -
migrationsTransactionMode- Управляет режимом транзакции при выполнении миграций. -
metadataTableName- Имя таблицы в базе данных, содержащей информацию о метаданных таблиц. По умолчанию таблица называется "typeorm_metadata". -
cache- Включает кэширование результатов сущностей. Здесь также можно настроить тип кэша и другие параметры. Подробнее о кэшировании здесь. -
isolateWhereStatements- Включает изоляцию условий WHERE, автоматически заключая каждое условие в скобки. Например,.where("user.firstName = :search OR user.lastName = :search")преобразуется вWHERE (user.firstName = ? OR user.lastName = ?)вместоWHERE user.firstName = ? OR user.lastName = ?. -
invalidWhereValuesBehavior- Управляет обработкой значений null и undefined в условиях where для операций высокого уровня (операции find, методы репозитория, методы EntityManager). Не влияет напрямую на.where()в QueryBuilder.- Варианты поведения для
null:'ignore'- игнорирует свойства со значением null'sql-null'- преобразует null в SQL NULL'throw'(по умолчанию) - вызывает ошибку
- Варианты поведения для
undefined:'ignore'- игнорирует свойства со значением undefined'throw'(по умолчанию) - вызывает ошибку
Пример:
invalidWhereValuesBehavior: { null: 'sql-null', undefined: 'ignore' }.Подробнее: Обработка Null и Undefined.
- Варианты поведения для
Пример настроек источника данных
Небольшой пример настроек источника данных для 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}"]
}