data-source.ts 958 B

1234567891011121314151617181920212223242526
  1. import "reflect-metadata"
  2. import { DataSource } from "typeorm"
  3. import process from 'node:process'
  4. import * as entities from './entities'
  5. /**
  6. * TypeORM 数据源配置
  7. *
  8. * 使用类导入方式加载实体,让 Vite SSR 正确处理 TypeScript 编译
  9. * 实体内部已使用字符串语法解决循环依赖问题
  10. */
  11. export const AppDataSource = new DataSource({
  12. type: "postgres",
  13. host: process.env.DB_HOST || "localhost",
  14. port: parseInt(process.env.DB_PORT || "5432"),
  15. username: process.env.DB_USERNAME || "postgres",
  16. password: process.env.DB_PASSWORD || "",
  17. database: process.env.DB_DATABASE || "postgres",
  18. // 使用类导入方式,Vite SSR 会处理 TypeScript 编译
  19. entities: Object.values(entities),
  20. migrations: [
  21. "./migrations/*[0-9].ts", // 只匹配数字时间戳开头的迁移文件,排除 index.ts
  22. ],
  23. synchronize: false, // 迁移时必须关闭自动同步
  24. logging: process.env.DB_LOGGING === "true",
  25. })