Files
gongxue-base/apps/server/datasource.ts
wangziqi 2ee8bd47e2 feat: add TypeORM CLI migration support
- 新增 datasource.ts 支持 mysql/sqlite 双模式
- 新增 migration 脚本: generate/create/run/revert/show
- 生成 InitialSchema migration (35 张表全量建表)
2026-07-20 12:16:48 +08:00

22 lines
919 B
TypeScript

import { DataSource } from 'typeorm';
import { config } from 'dotenv';
import { join } from 'path';
// TypeORM CLI runs from apps/server/
const root = process.cwd();
config({ path: join(root, '.env') });
const dbType = process.env.DB_TYPE || 'sqlite';
export default new DataSource({
type: dbType === 'mysql' ? 'mysql' : 'better-sqlite3',
host: dbType === 'mysql' ? (process.env.DB_HOST || 'localhost') : undefined,
port: dbType === 'mysql' ? (Number(process.env.DB_PORT) || 3306) : undefined,
username: dbType === 'mysql' ? (process.env.DB_USERNAME || 'root') : undefined,
password: dbType === 'mysql' ? (process.env.DB_PASSWORD || '') : undefined,
database: process.env.DB_DATABASE || (dbType === 'mysql' ? 'dorm_billing' : 'dorm_billing.db'),
charset: dbType === 'mysql' ? 'utf8mb4' : undefined,
entities: [join(root, 'src/**/*.entity.ts')],
migrations: [join(root, 'src/migrations/*.ts')],
});