| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import "reflect-metadata"
- import { DataSource } from "typeorm"
- import process from 'node:process'
- // 实体类导入
- import { UserEntity as User } from "./modules/users/user.entity"
- import { Role } from "./modules/users/role.entity"
- import { File } from "./modules/files/file.entity"
- import { PaymentEntity } from "./modules/payments/payment.entity"
- import { MembershipPlan } from "./modules/membership/membership-plan.entity"
- import { Template } from "./modules/templates/template.entity"
- import { InitSystemSettings1735900000000 } from "./migrations/1735900000000-init-system-settings"
- import { SystemSetting } from "./modules/settings/system-setting.entity"
- import { SolutionDesign } from "./modules/solution-designs/solution-design.entity"
- import { SolutionChapter } from "./modules/solution-designs/solution-chapter.entity"
- import { ConsultationRequest } from "./modules/consultation/consultation-request.entity"
- // 在测试环境下使用测试数据库配置
- const isTestEnv = process.env.NODE_ENV === 'test';
- const testDatabaseUrl = process.env.TEST_DATABASE_URL || 'mysql://root:test_password@localhost:3306/test_d8dai';
- const dataSource = isTestEnv && testDatabaseUrl
- ? new DataSource({
- type: "mysql",
- url: testDatabaseUrl,
- entities: [
- User, Role, File, PaymentEntity, MembershipPlan, Template, SystemSetting,
- SolutionDesign, SolutionChapter, ConsultationRequest,
- ],
- migrations: [
- InitSystemSettings1735900000000,
- ],
- synchronize: true, // 测试环境总是同步schema
- dropSchema: true, // 测试环境每次重新创建schema
- logging: false, // 测试环境关闭日志
- })
- : new DataSource({
- type: "mysql",
- host: process.env.DB_HOST || "localhost",
- port: parseInt(process.env.DB_PORT || "3306"),
- username: process.env.DB_USERNAME || "root",
- password: process.env.DB_PASSWORD || "",
- database: process.env.DB_DATABASE || "d8dai",
- entities: [
- User, Role, File, PaymentEntity, MembershipPlan, Template, SystemSetting,
- SolutionDesign, SolutionChapter, ConsultationRequest,
- ],
- migrations: [
- InitSystemSettings1735900000000,
- ],
- synchronize: process.env.DB_SYNCHRONIZE !== "false",
- logging: process.env.DB_LOGGING === "true",
- });
- export const AppDataSource = dataSource;
|