inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

typeorm seeding, migration

seeder is not a constructor

825

양진영

작성한 질문수 13

0

yarn seed를 통해 더미데이터를 생성하려 했으나 "seeder is not a constructor" 라는 에러에 마주칩니다.

 

어느 부분이 잘못됫는지 알아보기 위해 에러코드를 살펴봤으나 제 코드 부분이 아닌 typeorm-extension 부분에서 에러가 나는것 같아 해결하기 어렵습니다.

TypeError: seeder is not a constructor
    at /Users/jinyoung/Desktop/try-own-version/practice-version/node_modules/typeorm-extension/src/seeder/module.ts:122:19
    at Generator.next (<anonymous>)
    at fulfilled (/Users/jinyoung/Desktop/try-own-version/practice-version/node_modules/typeorm-extension/dist/seeder/module.js:5:58)

 

dataSource.ts
import dotenv from 'dotenv';
//dataSource에 entity를 입력해줄때는 절대경로면 못찾아온다. 그래서 상대 경로로 써줘야함
import { User } from './src/users/entities/user.entity';
import { DataSource } from 'typeorm';

const mode = process.env.NODE_ENV || 'development';
dotenv.config({ path: process.cwd() + `/.env.${mode}` });

const dataSource = new DataSource({
  type: 'mysql',
  host: 'localhost',
  port: 3306,
  database: process.env.DB_DATABASE,
  username: process.env.DB_USERNAME,
  password: process.env.DB_PASSWORD,
  charset: 'utf8mb4_general_ci',
  entities: [User],
  migrations: [__dirname + '/src/migrations/*.ts'],
  synchronize: true,
  logging: true,
});
export default dataSource;

 

package.json seed부분 설정
"seed": "ts-node ./node_modules/typeorm-extension/dist/cli/index.js seed -d ./dataSource.ts"

 

database/seeds/create-initial-data.ts

import { User } from '../../users/entities/user.entity';
import { DataSource } from 'typeorm';
import { Seeder, SeederFactoryManager } from 'typeorm-extension';

export class UserSeeder implements Seeder {
  async run(
    dataSource: DataSource,
    factoryManager: SeederFactoryManager,
  ): Promise<any> {
    const userRepository = dataSource.getRepository(User);

    await userRepository.save({
      email: 'ggg@gmail.com',
      firstName: 'sfvs',
      lastName: 'wdwdwd',
      nickname: 'hihi',
    });
  }
}

 

typeorm-extension 버젼
"typeorm-extension": "^2.4.2",
"typeorm": "^0.3.12",

 

시도해본 내용
1. dataSource 생성시 new DataSource({

... 중략
seed:["create-initial-data.ts 경로"] 추가

})

2. db 삭제후 다시 생성(생성시 테이블 싱크까지 맞춘후 seed 시도)

3. typeorm-extension 버전 문제일까 해서 다운그레이드 시도

4. typeorm 0.3대는 유지하고 0.3.11, 0.3.10등 다른 버전으로 시도

결과 모두 실패

node.js express nestjs nodejs typeorm NestJS TypeORM

답변 2

0

김링크

헤메시는 분들 있을까봐 댓글 남깁니다.

해당 에러는 default가 빠져서 발생하는 오류입니다.

질문자님 코드 기준으로

database/seeds/create-initial-data.ts 에서

export default class UserSeeder implements Seeder {

로 수정하면 해당 에러는 사라질것 같네요.

0.2와 0.3 사이에 바뀐게 많아서 혼란스러운 부분이 많네요.

다들 화이팅입니다!

0

제로초(조현영)

seeds: ['src/database/seeds/**/*{.ts,.js}'],

이렇게 해보셨나요? 파일도 저 경로가 맞죠??

강의자료는 어디서 다운받나요?

0

110

3

질문 있습니다.

0

294

3

(강의 5:42 질문) providers를 통한 여러 개의 인스턴스 생성 & exports 통한 싱글톤 생성

0

154

2

코드 편집기 확장 프로그램

0

209

2

(질문)비밀 저장소에 접근하기 위한 인증 정보는 로컬 .env에 저장하는지?

0

143

2

(질문)외부 저장소를 통한 환경변수 불러오기 비동기 질문

0

166

3

로그인을 해도 LoggedInGuard쪽에서 false값이 나옵니다.

0

152

2

로그인방법이 고민됩니다.

0

190

2

yarn seed 명령어 실행 시 데이터 삽입 안됨

0

296

4

yarn run db:create 시에 발생하는 데코레이터 오류

0

242

2

npm run db:create 시에 발생하는 decorating 오류

0

231

2

RxJS 디버깅 질문 있습니다.

0

187

3

CacheManager에 대해 질문 있습니다.

0

173

2

로깅은 어떻게 하는게 효율적일까요?

0

222

1

CORS 질문 있습니다.

0

417

2

쿠키 옵션에 대해서 질문 있습니다.

0

184

2

로그아웃 요청이 403 forbidden 에러가 나는데 왜그런걸까요??

0

447

1

401 unauthorized문제

0

285

1

가드의 장점에 대해서 질문이 있습니다.

0

225

1

로그 관리에 대해 질문 있습니다.

0

251

2

CORS 에러 질문 있습니다.

0

318

2

배포 환경 DB 연결 질문 있습니다.

0

410

2

socket io 미 연결 문제 (nest & flutter)

1

1153

3

no elements in sequence 에러 관해서 질문이 있습니다.

0

453

1