【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