42 lines
1.5 KiB
TypeScript
42 lines
1.5 KiB
TypeScript
import 'dotenv/config';
|
|
import 'reflect-metadata';
|
|
import { DataSource } from 'typeorm';
|
|
import { AuditLogEntity } from '../audit/audit-log.entity';
|
|
import { UserEntity } from '../auth/user.entity';
|
|
import { RefreshTokenEntity } from '../auth/refresh-token.entity';
|
|
import { ListTemplateEntity } from '../list-templates/list-template.entity';
|
|
import { ListTemplateItemEntity } from '../list-templates/list-template-item.entity';
|
|
import { TemplateSeedEntity } from '../list-templates/template-seed.entity';
|
|
import { UserListEntity } from '../lists/user-list.entity';
|
|
import { UserListItemEntity } from '../lists/user-list-item.entity';
|
|
import {
|
|
databaseLoggerOptionsFromEnv,
|
|
parseDatabaseLogging,
|
|
slowQueryThresholdFromEnv,
|
|
} from './database-logging.config';
|
|
import { DatabaseLogger } from './database.logger';
|
|
|
|
export default new DataSource({
|
|
type: 'mysql',
|
|
host: process.env.DB_HOST ?? 'localhost',
|
|
port: Number(process.env.DB_PORT ?? '3306'),
|
|
username: process.env.DB_USERNAME ?? 'root',
|
|
password: process.env.DB_PASSWORD ?? '',
|
|
database: process.env.DB_DATABASE ?? 'listify',
|
|
synchronize: false,
|
|
logging: parseDatabaseLogging(process.env.DB_LOGGING),
|
|
logger: new DatabaseLogger(databaseLoggerOptionsFromEnv(process.env)),
|
|
maxQueryExecutionTime: slowQueryThresholdFromEnv(process.env),
|
|
entities: [
|
|
AuditLogEntity,
|
|
UserEntity,
|
|
RefreshTokenEntity,
|
|
ListTemplateEntity,
|
|
ListTemplateItemEntity,
|
|
TemplateSeedEntity,
|
|
UserListEntity,
|
|
UserListItemEntity,
|
|
],
|
|
migrations: ['src/database/migrations/*.ts'],
|
|
});
|