Skip to content

Commit 9fc9c53

Browse files
feat: run schema generator on startup
1 parent 8437cce commit 9fc9c53

File tree

4 files changed

+55
-23
lines changed

4 files changed

+55
-23
lines changed

package.json

+2-9
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@
1717
"test:watch": "jest --watch",
1818
"test:cov": "jest --coverage",
1919
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
20-
"test:e2e": "jest --config ./test/jest-e2e.json",
21-
"db:sync": "mikro-orm schema:update --run"
20+
"test:e2e": "jest --config ./test/jest-e2e.json"
2221
},
2322
"dependencies": {
2423
"@mikro-orm/cli": "^6.2.5",
2524
"@mikro-orm/core": "^6.2.5",
2625
"@mikro-orm/nestjs": "^5.2.3",
2726
"@mikro-orm/postgresql": "^6.2.5",
2827
"@nestjs/common": "^10.0.0",
28+
"@nestjs/config": "^3.2.2",
2929
"@nestjs/core": "^10.0.0",
3030
"@nestjs/jwt": "^10.2.0",
3131
"@nestjs/mapped-types": "*",
@@ -77,12 +77,5 @@
7777
],
7878
"coverageDirectory": "../coverage",
7979
"testEnvironment": "node"
80-
},
81-
"mikro-orm": {
82-
"useTsNode": true,
83-
"configPaths": [
84-
"./src/mikro-orm.config.ts",
85-
"./dist/mikro-orm.config.js"
86-
]
8780
}
8881
}

pnpm-lock.yaml

+27
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/app.module.ts

+26-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1+
import { MikroORM } from '@mikro-orm/core';
12
import { MikroOrmModule } from '@mikro-orm/nestjs';
2-
import { Module } from '@nestjs/common';
3+
import { PostgreSqlDriver } from '@mikro-orm/postgresql';
4+
import { Module, OnApplicationBootstrap } from '@nestjs/common';
5+
import { ConfigModule, ConfigService } from '@nestjs/config';
36
import { ServeStaticModule } from '@nestjs/serve-static';
47
import { join } from 'path';
58
import { AuthModule } from './auth/auth.module';
@@ -8,12 +11,32 @@ import { UsersModule } from './users/users.module';
811
@Module({
912
imports: [
1013
AuthModule,
11-
MikroOrmModule.forRoot(),
14+
ConfigModule.forRoot(),
15+
MikroOrmModule.forRootAsync({
16+
imports: [ConfigModule],
17+
useFactory: (configService: ConfigService) => ({
18+
entities: ['dist/**/*.entity.js'],
19+
entitiesTs: ['src/**/*.entity.ts'],
20+
host: configService.get('DB_HOST'),
21+
dbName: 'postgres',
22+
user: 'postgres',
23+
password: 'postgres',
24+
driver: PostgreSqlDriver,
25+
}),
26+
inject: [ConfigService],
27+
}),
1228
ServeStaticModule.forRoot({
1329
rootPath: join(__dirname, '..', 'uploads'),
1430
serveRoot: '/uploads',
1531
}),
1632
UsersModule,
1733
],
1834
})
19-
export class AppModule {}
35+
export class AppModule implements OnApplicationBootstrap {
36+
constructor(private orm: MikroORM) {}
37+
38+
async onApplicationBootstrap() {
39+
const generator = this.orm.getSchemaGenerator();
40+
await generator.updateSchema();
41+
}
42+
}

src/mikro-orm.config.ts

-11
This file was deleted.

0 commit comments

Comments
 (0)