| 1234567891011121314151617181920212223242526272829303132333435363738 |
- 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"
- // 在测试环境下使用测试数据库配置
- const isTestEnv = process.env.NODE_ENV === 'test';
- const testDatabaseUrl = process.env.TEST_DATABASE_URL || 'postgresql://postgres:test_password@localhost:5432/test_d8dai';
- ;
- const dataSource = isTestEnv && testDatabaseUrl
- ? new DataSource({
- type: "postgres",
- url: testDatabaseUrl,
- entities: [User, Role, File],
- migrations: [],
- synchronize: true, // 测试环境总是同步schema
- dropSchema: true, // 测试环境每次重新创建schema
- logging: false, // 测试环境关闭日志
- })
- : new DataSource({
- type: "postgres",
- host: process.env.DB_HOST || "localhost",
- port: parseInt(process.env.DB_PORT || "5432"),
- username: process.env.DB_USERNAME || "postgres",
- password: process.env.DB_PASSWORD || "",
- database: process.env.DB_DATABASE || "postgres",
- entities: [User, Role, File],
- migrations: [],
- synchronize: process.env.DB_SYNCHRONIZE !== "false",
- logging: process.env.DB_LOGGING === "true",
- });
- export const AppDataSource = dataSource;
|