import "reflect-metadata" import { DataSource } from "typeorm" import process from 'node:process' import * as entities from './entities' /** * TypeORM 数据源配置 * * 使用类导入方式加载实体,让 Vite SSR 正确处理 TypeScript 编译 * 实体内部已使用字符串语法解决循环依赖问题 */ export const AppDataSource = 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", // 使用类导入方式,Vite SSR 会处理 TypeScript 编译 entities: Object.values(entities), migrations: [ "./migrations/*[0-9].ts", // 只匹配数字时间戳开头的迁移文件,排除 index.ts ], synchronize: false, // 迁移时必须关闭自动同步 logging: process.env.DB_LOGGING === "true", })