seeder is not a constructor
825
작성한 질문수 13
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등 다른 버전으로 시도
결과 모두 실패
답변 2
0
헤메시는 분들 있을까봐 댓글 남깁니다.
해당 에러는 default가 빠져서 발생하는 오류입니다.
질문자님 코드 기준으로
database/seeds/create-initial-data.ts 에서
export default class UserSeeder implements Seeder {로 수정하면 해당 에러는 사라질것 같네요.
0.2와 0.3 사이에 바뀐게 많아서 혼란스러운 부분이 많네요.
다들 화이팅입니다!
강의자료는 어디서 다운받나요?
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





