import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { Client, DocumentType, DocumentField, Task, Postprocessing, PostprocessingAction, PostprocessingLog, ExportTarget, Setting, Kontonummer, Document, UserClient, Email, Attachment, Content, ApiKey, CorrespondentSetting, BarcodeTemplate, InboxDocument, InboxPostprocessingAction, CorrespondentEmailMapping, UserSettings, } from './entities'; const entities = [ Client, DocumentType, DocumentField, Task, Postprocessing, PostprocessingAction, PostprocessingLog, ExportTarget, Setting, Kontonummer, Document, UserClient, Email, Attachment, Content, ApiKey, CorrespondentSetting, BarcodeTemplate, InboxDocument, InboxPostprocessingAction, CorrespondentEmailMapping, UserSettings, ]; @Module({ imports: [ TypeOrmModule.forRootAsync({ imports: [ConfigModule], inject: [ConfigService], useFactory: (config: ConfigService) => ({ type: 'mysql' as const, host: config.get('DB_HOST', 'localhost'), port: config.get('DB_PORT', 3306), username: config.get('DB_USERNAME', 'root'), password: config.get('DB_PASSWORD', ''), database: config.get('DB_DATABASE', 'paperlessadd'), entities, synchronize: true, charset: 'utf8mb4', }), }), TypeOrmModule.forFeature(entities), ], exports: [TypeOrmModule], }) export class DatabaseModule {}