Files
cyh-tk-backend/src/modules/database/database.module.ts
zhxiao1124 d3083bf16b feat: 新增数据库持久化支持并完善后台管理功能
- 引入dotenv加载环境变量,新增数据库同步配置项
- 为用户服务、管理员服务、数据服务添加数据库持久化逻辑
- 新增管理员用户邮箱字段,完善权限校验逻辑
- 添加数据库初始化与种子数据脚本
- 新增e2e测试验证管理员数据持久化
2026-07-01 17:11:29 +08:00

52 lines
1.8 KiB
TypeScript

import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { AdminUser } from '../admin/entities/admin-user.entity';
import { Permission } from '../admin/entities/permission.entity';
import { Role } from '../admin/entities/role.entity';
import { DataSyncJob } from '../data/entities/data-sync-job.entity';
import { DramaMetric } from '../data/entities/drama-metric.entity';
import { EpisodeMetric } from '../data/entities/episode-metric.entity';
import { Drama } from '../dramas/entities/drama.entity';
import { Episode } from '../dramas/entities/episode.entity';
import { PlaybackErrorLog } from '../logs/entities/playback-error-log.entity';
import { RequestLog } from '../logs/entities/request-log.entity';
import { MediaUploadJob } from '../media/entities/media-upload-job.entity';
import { Order } from '../orders/entities/order.entity';
import { UserEpisodeUnlock } from '../orders/entities/user-episode-unlock.entity';
import { User } from '../users/entities/user.entity';
const databaseImports = process.env.DB_HOST
? [
TypeOrmModule.forRoot({
type: 'mysql',
host: process.env.DB_HOST,
port: Number(process.env.DB_PORT) || 3306,
username: process.env.DB_USERNAME ?? 'root',
password: process.env.DB_PASSWORD ?? '',
database: process.env.DB_DATABASE ?? 'cth_tk',
entities: [
AdminUser,
Permission,
Role,
DataSyncJob,
DramaMetric,
EpisodeMetric,
Drama,
Episode,
PlaybackErrorLog,
RequestLog,
MediaUploadJob,
Order,
UserEpisodeUnlock,
User,
],
synchronize: process.env.DB_SYNCHRONIZE === 'true',
}),
]
: [];
@Module({
imports: databaseImports,
})
export class DatabaseModule {}