TaikiTkwkbysh
@TaikiTkwkbysh (WAKA Engineer)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

【NestJS + TypeORM】data-source.tsとTypeOrmModule.forRootは両方設定が必要なのか

解決したいこと

タイトルの通りなのですが、TypeORMでDBマイグレーションを設定する際、
data-source.tsとTypeOrmModule.forRootは両方記載する必要があるのでしょうか。

data-source.ts

import { DataSource } from 'typeorm';

export default new DataSource({
  type: 'postgres',
  host: 'localhost',
  port: 5432,
  username: 'postgres',
  password: 'postgres',
  database: 'postgres',
  entities: ['src/entities/*.ts'],
  migrations: ['src/migrations/*.ts'],
});

app.module.ts

import { Module } from '@nestjs/common';
import { ItemsModule } from './items/items.module';
import { TypeOrmModule } from '@nestjs/typeorm';
import { DataSource } from 'typeorm';
import { AuthModule } from './auth/auth.module';

@Module({
  imports: [
    ItemsModule,
    TypeOrmModule.forRoot({
      type: 'postgres',
      host: 'localhost',
      port: 5432,
      username: 'postgres',
      password: 'postgres',
      database: 'postgres',
      autoLoadEntities: true,
    }),
    AuthModule,
  ],
})
export class AppModule {
  constructor(private dataSource: DataSource) {}
}

autoLoadEntitiesはNestJS側のCLIでTypeORM側では設定できないところは分かるのですが、
TypeOrmModule.forRootでもmigrationの設定はできそうなので、TypeOrmModule.forRootだけでよさそうな気がしてしまいます。

import { Module } from '@nestjs/common';
import { ItemsModule } from './items/items.module';
import { TypeOrmModule } from '@nestjs/typeorm';
import { DataSource } from 'typeorm';
import { AuthModule } from './auth/auth.module';

@Module({
  imports: [
    ItemsModule,
    TypeOrmModule.forRoot({
      type: 'postgres',
      host: 'localhost',
      port: 5432,
      username: 'postgres',
      password: 'postgres',
      database: 'postgres',
      autoLoadEntities: true,
      migrations: [] // 設定可能
    }),
    AuthModule,
  ],
})
export class AppModule {
  constructor(private dataSource: DataSource) {}
}

どなたかご教示の程、よろしくお願い致します。

0

1Answer

TypeOrmModule.forRootだけでいいと思います。

下のURLはNest.jsのドキュメントです。
「TypeORM Integration」のところを読んでみると役に立つと思います。
ご参考になると幸いです。

1Like

Your answer might help someone💌