Team,
I have followed Nest.js and TypeORM documentations. Somehow tables are not generating in PostgreSQL. The database is connected successfully.
Nest Server running without error. Issue: The table is not generating.
src/tag/tag.entity.ts
import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm'; @Entity('tags') export class Tag { @PrimaryGeneratedColumn() id: number; @Column() name: string; }
src/app.module.ts
import { Module } from '@nestjs/common'; import { AppController } from '@app/app.controller'; import { AppService } from '@app/app.service'; import { TagModule } from '@app/tag/tag.module'; import { TypeOrmModule } from '@nestjs/typeorm'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { Tag } from './tag/tag.entity'; @Module({ imports: [ TypeOrmModule.forRootAsync({ imports: [ ConfigModule.forRoot({ isGlobal: true, envFilePath: '.local.env', // envFilePath: ".prod.env", }), ], useFactory: (configService: ConfigService) => ({ type: 'postgres', host: configService.get('HOST'), port: +configService.get('PORT'), username: configService.get('USERNAME'), password: configService.get('PASSWORD'), database: configService.get('DATABASE'), entities: [Tag], // entities: [__dirname + '/**/*.entity{.ts,.js}'], synchronize: configService.get<boolean>('SYNC'), }), inject: [ConfigService], }), TagModule, ], controllers: [AppController], providers: [AppService], }) export class AppModule {}
.local.env
# DATABASE CREDETIALS HOST=localhost PORT=5432 USERNAME=mediumclone PASSWORD=8170954991 DATABASE=postgres SYNC=true
Please help me generate Postgres tables. Framework – Nest JS Database – PostgreSQL
Advertisement
Answer
Your username is mediumclone
but the database you’re connecting to is postgres
, so the tables are being created under the postgres
table inside of the postgres
server (I know, table and server being named the same is kinda confusing). Change the DATABASE
env entry to be mediumclone
and you’ll get the result you want