feat: add TypeORM CLI migration support
- 新增 datasource.ts 支持 mysql/sqlite 双模式 - 新增 migration 脚本: generate/create/run/revert/show - 生成 InitialSchema migration (35 张表全量建表)
This commit is contained in:
21
apps/server/datasource.ts
Normal file
21
apps/server/datasource.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
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')],
|
||||
});
|
||||
Reference in New Issue
Block a user