feat(db): add TypeORM migration workflow for center and guild

This commit is contained in:
nav
2026-05-12 12:32:44 +00:00
parent 1b568757cb
commit 07d8b20f57
7 changed files with 41 additions and 3 deletions

View File

@@ -11,7 +11,10 @@
"lint:fix": "eslint 'src/**/*.ts' --fix",
"format": "prettier --write 'src/**/*.ts'",
"test:unit": "vitest run src/**/*.spec.ts --exclude src/*.integration.spec.ts --exclude dist/**",
"test:integration": "vitest run src/*.integration.spec.ts --exclude dist/**"
"test:integration": "vitest run src/*.integration.spec.ts --exclude dist/**",
"migration:generate": "node --require ts-node/register ./node_modules/typeorm/cli.js migration:generate src/migrations/AutoMigration -d src/data-source.ts",
"migration:run": "node --require ts-node/register ./node_modules/typeorm/cli.js migration:run -d src/data-source.ts",
"migration:revert": "node --require ts-node/register ./node_modules/typeorm/cli.js migration:revert -d src/data-source.ts"
},
"dependencies": {
"@nestjs/common": "^10.4.8",

View File

@@ -0,0 +1,16 @@
import 'reflect-metadata';
import { DataSource, DataSourceOptions } from 'typeorm';
import { buildTypeOrmConfig } from './database.config';
const cfg = buildTypeOrmConfig();
const options: DataSourceOptions = {
...(cfg as Record<string, unknown>),
type: 'mysql',
migrations: ['src/migrations/*.{ts,js}'],
synchronize: false,
} as DataSourceOptions;
export const AppDataSource = new DataSource(options);
export default AppDataSource;

View File

@@ -11,7 +11,10 @@
"lint:fix": "eslint 'src/**/*.ts' --fix",
"format": "prettier --write 'src/**/*.ts'",
"test:unit": "vitest run src/**/*.spec.ts --exclude src/*.integration.spec.ts --exclude dist/**",
"test:integration": "vitest run src/*.integration.spec.ts --exclude dist/**"
"test:integration": "vitest run src/*.integration.spec.ts --exclude dist/**",
"migration:generate": "node --require ts-node/register ./node_modules/typeorm/cli.js migration:generate src/migrations/AutoMigration -d src/data-source.ts",
"migration:run": "node --require ts-node/register ./node_modules/typeorm/cli.js migration:run -d src/data-source.ts",
"migration:revert": "node --require ts-node/register ./node_modules/typeorm/cli.js migration:revert -d src/data-source.ts"
},
"dependencies": {
"@nestjs/common": "^10.4.8",

View File

@@ -0,0 +1,16 @@
import 'reflect-metadata';
import { DataSource, DataSourceOptions } from 'typeorm';
import { buildTypeOrmConfig } from './database.config';
const cfg = buildTypeOrmConfig();
const options: DataSourceOptions = {
...(cfg as Record<string, unknown>),
type: 'mysql',
migrations: ['src/migrations/*.{ts,js}'],
synchronize: false,
} as DataSourceOptions;
export const AppDataSource = new DataSource(options);
export default AppDataSource;

View File

@@ -94,7 +94,7 @@
## 6. 部署与运维
- [x] `docker-compose.prod.yml`(去掉 `DB_SYNC=true`
- [ ] DB migration 机制TypeORM migration
- [x] DB migration 机制TypeORM migration
- [ ] 结构化日志 + request id
- [ ] 基础监控指标QPS、延迟、错误率
- [ ] 备份与恢复流程文档